我们有一个数据类型为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'
});
??
最佳答案
在我看来,这是绝对正确的行为。参数rowObject
的值是具有与colModel
的'name'属性中定义的名称相同的属性的对象。属性account
是其中的一个。我认为误解来自custom formatter文档的以下部分:
rowObject-是表示的行数据
根据数据类型确定的格式
选项。 ...如果我们有数据类型:
json / jsonstring-rowObject是
数组,根据规则提供
来自jsonReader
词数组可能引起误解。在JavaScript中,rowObject.account
可以用作rowObject["account"]
,但是不能使用rowObject[5]
来访问account
的rowObject
属性。在文档中只是不清楚的书面句子。如果您以英语为母语,则可以重新编写文本,以免产生误解。该文档是Wiki,任何人都可以更改任何文本。
关于jquery - 在jqGrid自定义格式化程序中访问行数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4036751/