我们有一个数据类型为json的网格。

我们有以下自定义格式化程序:

function opsFormatter (cellvalue, options, rowObject){
    '<a title=MA href=javascript:showDialog(' + rowObject[5] + ')>MA<a>' + '&nbsp;&nbsp;';
}


除了rowObject[5]以外,还有什么对象符号可以指定实际的列名(“帐户”)?即:rowObject.account

这是网格定义:

$("#grid-pos").jqGrid({
    colNames:['Product', 'Type','Expiry', 'Put Call', 'Strike', 'Account','Long','Short', 'Open Qty', 'LTD', 'Operations'],
    colModel :[
               {name:'product', index:'product', width:75, sortable:false},
               {name:'type', index:'type', width:50, align:'right', sortable:false},
               {name:'expiry', index:'expiry', width:60, align:'right',stype:'select', searchoptions:{dataUrl:'expiry_select.htm'}, sortable:false},
               {name:'putCall', index:'putCall', width:65, sortable:false},
               {name:'strike', index:'strike', sorttype: 'float', width:70, sortable:false},
               {name:'account', index:'account', width:70, sortable:false},
               {name:'long', index:'long', width:55, align:'right', sortable:false},
               {name:'short', index:'short', width:55, align:'right', sortable:false},
               {name: 'openQty', index:'openQty', width:80, align:'center', formatter:closeoutFormatter, sortable:false},
               {name:'LTD', index:'LTD', width:65, align:'right', sortable:false},
               {index:'operations', width:105, title:false, align: 'center', formatter:opsFormatter, sortable:false}
               ],
               pager: '#div-pos-pager',
               caption: 'Positions'
});


??

最佳答案

在我看来,这是绝对正确的行为。参数rowObject的值是具有与colModel的'name'属性中定义的名称相同的属性的对象。属性account是其中的一个。我认为误解来自custom formatter文档的以下部分:


  rowObject-是表示的行数据
  根据数据类型确定的格式
  选项。 ...如果我们有数据类型:
  json / jsonstring-rowObject是
  数组,根据规则提供
  来自jsonReader


词数组可能引起误解。在JavaScript中,rowObject.account可以用作rowObject["account"],但是不能使用rowObject[5]来访问accountrowObject属性。在文档中只是不清楚的书面句子。如果您以英语为母语,则可以重新编写文本,以免产生误解。该文档是Wiki,任何人都可以更改任何文本。

关于jquery - 在jqGrid自定义格式化程序中访问行数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4036751/

10-10 19:08