我只是错过了一些简单的东西吗?在不进行自定义格式设置的情况下,我只想在 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 参数值是网格行的序数索引,而不是数据中所需的值。有没有一种简单的方法来使用数据中的值?
最佳答案
格式选项idName
格式化程序的showlink
仅说出您需要的 url 中的参数名称。 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]);
给出行的 rowid 值 1,2, mysubdata.length
。设置key:true
对于专栏 orderid
将被方法addRowData
忽略 。您可以在开发者工具或 Firebug 中验证哪个 id 有 <tr>
网格的元素。
我建议您修改上面的代码或者直接使用data:mysubdata
作为jqGrid的附加参数而不是使用更慢的旧方法addRowData
。因为你定义了 key:true
一切都应该正常工作。您还可以使用localReader:{id:'orderid'}
作为附加的 jqGrid 参数。
关于jqGrid ShowLink Formatter - 自定义 ID 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5029464/