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」はエラーになります。それを正しく行う方法は?2番目と3番目のオプションで事前定義されたオプションを使用したいだけです。$ .extend()を見ていますが、正しく理解できません。

4

2 に答える 2

0

いくつかの構文エラーがあります。まず、}の末尾にaがありませんedit_options

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

このコードは間違っています。3番目のメンバーに名前を付ける必要があります。あなたはそれをしなければなりません:

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

jQueryのextend-methodを使用できます。

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 に答える