Jqgrid:基于所选行的导航

时间:2010-06-11 15:27:29

标签: jqgrid

我尝试根据所选行启用导航。因此,用户从jQgrid中选择一行,当按下show(有网格的显示按钮,我看到编辑,添加等)时,它需要根据url(行的一部分)转到新页面)。

$(document).ready(function () {
    function getLink() {
//      var rowid = $("#customer_list").jqGrid('getGridParam', 'selrow');
        var rowid = $("#customer_list").getGridParam('selrow');
        var MyCellData = $("#customer_list").jqGrid('getCell', rowid, 'dataUrl');
        return MyCellData;
    }

    $("#customer_list").jqGrid({
        url:'mytestList',
        editurl:'jq_edit_test',
        datatype: "json",
        colNames:['Call Id','Title','dataUrl'],
        colModel:[
          {name:'callId', width:80, search:false},
          {name:'title', width:200, sortable:false},
          {name:'dataUrl',hidden:true}
        ],
        rowNum:10,
        sortname:'lastUpdated',
        sortorder: 'desc',
        pager:'#customer_list_pager',
        viewrecords: true,
        gridview: true
    }).navGrid('#customer_list_pager',
      {add:true,edit:true,del:false,search:true,refresh:true}, 
      {closeAfterEdit:true, afterSubmit:afterSubmitEvent}, // edit options
      {addCaption:'Create New something', afterSubmit:afterSubmitEvent,
       savekey:[true,13]}, // add options
      {afterSubmit:afterSubmitEvent}  // delete options
    );
    $("#customer_list").jqGrid('filterToolbar');
});

所以,url作为dataUrl传递给每一行。我正在尝试阅读它并设置按钮。通过firebug进行调试时,rowid为223(网格中只有12行),单元格值为空。目前按钮保持在网格之外,但最好是它是vavGrid的一部分

感谢。

2 个答案:

答案 0 :(得分:15)

以下代码可以解决您的问题

$("#customer_list").jqGrid ('navButtonAdd', '#customer_list_pager',
    { caption: ""/*"Show"*/, buttonicon: "ui-icon-extlink", title: "Show Link",
      onClickButton: function() {
          var grid = $("#customer_list");
          var rowid = grid.jqGrid('getGridParam', 'selrow');
          window.location = grid.jqGrid('getCell', rowid, 'dataUrl');
      }
    });

答案 1 :(得分:4)

您可以让show按钮成为网格中每一行的一部分,并使用custom formatter将其转换为URL。

根据wiki中的示例,您可能需要一些基于

的内容
function myformatter ( cellvalue, options, rowObject )
{
    return "<a href=\"" + cellvalue + "\">Show</a>";
}