js 传参

jianshao810 2013-12-20 02:57:24

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 方法里面?
...全文
140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianshao810 2013-12-20
  • 打赏
  • 举报
回复
谢谢大家,感觉版主已经做得很完美啦。。
lzpggg 2013-12-20
  • 打赏
  • 举报
回复

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);
}
lzpggg 2013-12-20
  • 打赏
  • 举报
回复
引用 3 楼 jianshao810 的回复:
不好意思,我表达不清晰。 上面的意思大概是这样: 我要给 datagrid 传多一个属性, 那么我必须修改 baseDataGridInit 这个方法。 我能不能做到不修改 baseDataGridInit  这个方法又可以满足我的需求呢?
可以,用arguments[n]按位置来取参数
Go 旅城通票 2013-12-20
  • 打赏
  • 举报
回复
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方法
jianshao810 2013-12-20
  • 打赏
  • 举报
回复
不好意思,我表达不清晰。 上面的意思大概是这样: 我要给 datagrid 传多一个属性, 那么我必须修改 baseDataGridInit 这个方法。 我能不能做到不修改 baseDataGridInit  这个方法又可以满足我的需求呢?
张运领 2013-12-20
  • 打赏
  • 举报
回复
你这是在问,你上面的写法是不是正确的? baseDataGridInit 你这个写的,不是传的几个参数吗,虽然参数可以是对象。 你说的传一个对象,是啥意思? 你要把这四个参数以一个对象的形式传入?
良月零五 2013-12-20
  • 打赏
  • 举报
回复
setTimeout("baseDataGridInit(\"" + TableID+ "\",\"" + DataGridID+ "\",\""+ToolBar+"\",\""+opts+"|")", 1000); 这样试试呢!!

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧