我们有一个数据类型为json的网格。
我们有以下自定义格式化程序:
function opsFormatter (cellvalue, options, rowObject){
'<a title=MA href=javascript:showDialog(' + rowObject[5] + ')>MA<a>' + ' ';
}
是否有任何对象符号,而不是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'
});
...
答案 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