首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js 传参,该怎么处理

2013-12-23 
js 传参baseDataGridInit function (TableID, DataGridID, ToolBar, opts) {DataGridID (DataGridID |

js 传参


baseDataGridInit = function (TableID, DataGridID, ToolBar, opts) {
    DataGridID = (DataGridID || "DataGrid");
    ToolBar = (ToolBar || "ToolBar");

    //初始化数据表格
    $("#" + DataGridID).datagrid({
        toolbar: "#" + ToolBar,
        striped: true,
        nowwrap: false,
        border: true,
        fit: (opts.fitColumns || true),
        loadMsg: "",
        queryParams: (opts.queryParams || { "method": "query" }),
        idField: TableID,
        url: (opts.url || location.href),
        fitColumns: (opts.fitColumns||false),
        pagination: true,
        rownumbers: true,
        singleSelect: false,
        autoRowHeight:false});
}

不知道高手们能不能看到懂。
$("#" + DataGridID).datagrid();的参数是一个对象。而 baseDataGridInit  也是传入一个对象。
datagrid 本来有属性,我能不能自动一个的将 baseDataGridInit  的参数修正之后再传入到 datagrid 方法里面?
[解决办法]
 setTimeout("baseDataGridInit("" + TableID+ "","" + DataGridID+ "",""+ToolBar+"",""+opts+"
[解决办法]
")", 1000);

这样试试呢!!
[解决办法]
你这是在问,你上面的写法是不是正确的?

baseDataGridInit 你这个写的,不是传的几个参数吗,虽然参数可以是对象。

你说的传一个对象,是啥意思?

你要把这四个参数以一个对象的形式传入?
[解决办法]
本帖最后由 showbo 于 2013-12-20 15:15:29 编辑     baseDataGridInit = function (TableID, DataGridID, ToolBar, opts) {
        DataGridID = (DataGridID 
[解决办法]
 "DataGrid");
        ToolBar = (ToolBar 
[解决办法]
 "ToolBar");
        var cfg = {
            toolbar: "#" + ToolBar,
            striped: true,
            nowwrap: false,
            border: true,
            fit: (opts.fitColumns 
[解决办法]
 true),
            loadMsg: "",
            queryParams: (opts.queryParams 
[解决办法]
 { "method": "query" }),
            idField: TableID,
            url: (opts.url 
[解决办法]
 location.href),
            fitColumns: (opts.fitColumns 
[解决办法]
 false),
            pagination: true,
            rownumbers: true,
            singleSelect: false,
            autoRowHeight: false
        };
        $.extend(cfg, opts);
        //初始化数据表格
        $("#" + DataGridID).datagrid(

cfg);
    }


这样?用opts扩展或者替换掉默认datagrid的配置?用$.extend方法
[解决办法]

引用:
不好意思,我表达不清晰。
上面的意思大概是这样:
我要给 datagrid 传多一个属性,
那么我必须修改
baseDataGridInit?这个方法。
我能不能做到不修改 baseDataGridInit? 这个方法又可以满足我的需求呢?

可以,用arguments[n]按位置来取参数
[解决办法]

baseDataGridInit = function (TableID, DataGridID, ToolBar, opts) {
    DataGridID = (DataGridID 
[解决办法]
 "DataGrid");
    ToolBar = (ToolBar 
[解决办法]
 "ToolBar");
    var otherParms=null;
    if (arguments.length>4){
       otherParms=arguments[4];
    }
    //初始化数据表格
    $("#" + DataGridID).datagrid({
        toolbar: "#" + ToolBar,
        striped: true,
        nowwrap: false,
        border: true,
        fit: (opts.fitColumns 
[解决办法]
 true),
        loadMsg: "",
        queryParams: (opts.queryParams 
[解决办法]
 { "method": "query" }),
        idField: TableID,
        url: (opts.url 
[解决办法]
 location.href),
        fitColumns: (opts.fitColumns
[解决办法]
false),
        pagination: true,
        rownumbers: true,
        singleSelect: false,
        autoRowHeight:false},otherParms);
}

热点排行