我在这里错过了一些简单的东西吗?不进入自定义格式化,我只想在showlink
格式化程序中使用我的ID值作为ID参数。这是我的子网格的一个例子:
subGridRowExpanded: function (subgrid_id, row_id) {
var subgrid_table_id = subgrid_id + '_t';
$('#' + subgrid_id).html('<table id="' + subgrid_table_id + '" class="scroll" />');
$('#' + subgrid_table_id).jqGrid({
datatype: 'local',
colNames: ['Order Number', 'Request Type', 'Owner', 'Order Status', 'Status Date'],
colModel: [{
name: 'orderid',
index: 'orderid',
width: 150,
key: true,
formatter: 'showlink',
formatoptions: { baseLinkUrl: 'AOFOrderFacilities.aspx', idName: 'orderid' }
}, {
name: 'type',
index: 'type',
width: 100
}, {
name: 'owner',
index: 'owner',
width: 200
}, {
name: 'status',
index: 'status',
width: 150
}, {
name: 'date',
index: 'date',
width: 150
}],
sortname: 'num',
sortorder: 'asc',
height: 'auto'
});
// TODO: Make this into an AJAX call. This is just for demo.
var mysubdata = [
{ orderid: 'O00001234', type: 'Data', owner: 'Melanie Martin', status: 'Saved', date: '2/4/2011 11:48:18 AM' },
{ orderid: 'O00001235', type: 'Voice', owner: 'Billy Solomon', status: 'Submitted to TC', date: '2/4/2011 12:03:47 PM' }
];
for (var i = 0; i <= mysubdata.length; i++)
jQuery('#' + subgrid_table_id).jqGrid('addRowData', i + 1, mysubdata[i]);
}
当渲染网格第一列中的链接时,它们会正确显示orderid
值作为列的文本(预先设置的“O”是有意的,并且应该通过系统传递像那样),但结果链接是:
http://localhost/somestuff/AOFOrderFacilities.aspx?orderid=1
http://localhost/somestuff/AOFOrderFacilities.aspx?orderid=2
依此类推,其中ID参数值是网格行的序数索引,而不是数据中的期望值。是否有一种简单的方法来使用数据中的值?
答案 0 :(得分:2)
格式化程序idName
的格式选项showlink
仅表示您需要的网址中的参数名称。 id的值始终 rowid。在您的示例中,您使用
var mysubdata = [
{ orderid: 'O00001234', type: 'Data', owner: 'Melanie Martin',
status: 'Saved', date: '2/4/2011 11:48:18 AM' },
{ orderid: 'O00001235', type: 'Voice', owner: 'Billy Solomon',
status: 'Submitted to TC', date: '2/4/2011 12:03:47 PM' }
];
for (var i = 0; i <= mysubdata.length; i++)
jQuery('#' + subgrid_table_id).jqGrid('addRowData', i + 1, mysubdata[i]);
将行1,2的值设为1,2,mysubdata.length
。方法key:true
将orderid
列设置addRowData
忽略。您可以在开发者工具或Firebug中验证哪个ID具有网格的<tr>
个元素。
我建议您修改上面的代码,或者只使用data:mysubdata
作为jqGrid的附加参数,而不是使用更慢的旧方法addRowData
。因为你定义了key:true
所有都应该正确。您还可以使用localReader:{id:'orderid'}
作为额外的jqGrid参数。
答案 1 :(得分:1)
不确定你们是否已经解决了这个问题但是我通过设置json阅读器将其发送到我选择的ID中,如下所示:
jsonReader: {
repeatitems: false,
id: "[property whose value you want to pass]"
},
富