1

我正在使用jqgrid,那里的选项太多了。我想要做的是设置一个预定义的选项,然后再使用它。

//my predefined options 
var edit_options = {
editrules:
{
    required:true 
    ,edithidden:true
    ,editable:true
}

然后在执行时

jGrid.jqGrid({
...
colNames:['id','Code', 'Name'],
    colModel:[
    //id
    {name:'sample_id'
        ,index:'sample_id'
    },
    //Code
    {name:'sample_code'
        ,index:'sample_code'
        ,edit_options
    },
    //Name
    {name:'sample_name'
        ,index:'sample_name'
        ,edit_options
    }

当然,这里的“edit_options”会出错。如何正确地做到这一点?我只希望第二个和第三个选项使用预定义的选项。我正在查看 $.extend(),但无法正确理解。

4

2 回答 2

0

您可以使用 jQuery 的extend- 方法:

jGrid.jqGrid({
...
colNames:['id','Code', 'Name'],
    colModel:[
       $.extend(true,
          {
             name:'sample_code',
             index:'sample_code'
          }, 
          editOptions
       ),
       $.extend(true, setupCode, editOptions),
       $.extend(true, setupCode, editOptions)
    ]
});

此方法采用任意数量的对象,并将每个对象的属性依次复制到第一个对象中。请注意,如果同一个键多次存在,则当前值将被新的值覆盖。

于 2012-11-15T14:21:30.393 回答
0

有一些语法错误。首先, a}的末尾缺少edit_options

{name:'sample_id'
    ,index:'sample_id'
    ,edit_options
},

这个代码是错误的,你必须给第三个成员一个名字。你必须这样做:

{name:'sample_id'
    ,index:'sample_id'
    , options : edit_options // Replace 'options' by the good name
},
于 2012-11-15T14:20:36.620 回答