jqGrid ShowLink Formatter - 自定义 ID 参数

标签 jqgrid

我只是错过了一些简单的东西吗?在不进行自定义格式设置的情况下,我只想在 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/

相关文章:

asp.net-mvc-4 - jqGrid 寻呼机仅返回第一页

同时使用 Jquery UI 对话框 + Jqgrid

javascript - 可以通过调用 setColProp 来更改列格式化程序吗?

jquery - 将标题栏文本放在 jqGrid 中居中,同时保持打开/关闭按钮的位置?

java - 当用户单击Struts2 jquery grid的删除按钮时,卡在获取特定行的id

java - 如何更改jqgrid寻呼机中的值

javascript - jqgrid中如何显示百分比?

jqgrid - 在 jqGrid 中内联编辑行时出现排序列的问题

jquery - JQGrid 未显示关于列排序的 "Loading"消息

javascript - 使用 "filterToolbar"在客户端进行 jqGrid 过滤