Access row data in jqGrid custom formatter
We have a grid with datatype json.
We have the following custom formatter:
function opsFormatter (cellvalue, options, rowObject){
'<a title=MA href=javascript:showDialog(' + rowObject[5] + ')>MA<a&g开发者_如何学JAVAt;' + ' ';
}
Instead of rowObject[5]
is there any object notation where we can specify the actual column name ("account")? Ie: rowObject.account
.
This is the grid definition:
$("#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'
});
??
It seems for me absolute correct behavior. The value of the parameter rowObject
is object having properties with the same names as defined in the 'name' property of the colModel
. The property account
is one from there. I suppose that the misunderstanding come from the following part of the documentation of the custom formatter:
rowObject - is a row data represented in the format determined from datatype option. ... If we have datatype: json/jsonstring - the rowObject is array, provided according to the rules from jsonReader
Probably the word array follows to misunderstanding. In JavaScript rowObject.account
can be used as rowObject["account"]
, but one can't use rowObject[5]
to access the account
property of rowObject
. It is just not clear written sentence in the documentation. If you are a native English speaker you can reformulate the text so that it will has no misunderstandings. The documentation is wiki and any person can change any text.
You can get with this code for second index
rowObject.childNodes[2].textContent
精彩评论