访问jqGrid自定义格式化程序中的行数据

时间:2010-10-27 19:09:14

标签: jquery formatting jqgrid

我们有一个数据类型为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'
});  

...

2 个答案:

答案 0 :(得分:11)

对我来说,绝对正确的行为似乎。参数rowObject的值为对象,其属性与colModel的'name'属性中定义的名称相同。属性account就是那里的一个。我想这个误解来自custom formatter的文档的以下部分:

  

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

array 这个词可能会引起误解。在JavaScript中rowObject.account可以用作rowObject["account"],但不能使用rowObject[5]来访问account的{​​{1}}属性。在文档中只是不清楚书面句子。如果您是母语为英语的人,您可以重新制定文本,以免产生误解。文档是wiki,任何人都可以更改任何文本。

答案 1 :(得分:0)

您可以使用此代码获取第二个索引

rowObject.childNodes[2].textContent