2010-06-11 60 views
6

我试图启用基于选定行的导航。所以,用户从jQgrid中选择一行,当按下show(有一个显示按钮的网格,我看到编辑,添加等),它需要去基于url的一个新的页面(行的一部分)。Jqgrid:基于选定行的导航

$(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传递给每一行。我正在尝试阅读并设置为按钮。当通过萤火虫调试时,rowid为223(网格中只有12行),单元格值为空。目前该按钮保持在网格之外,但最好是它的一部分,vavGrid

谢谢。

回答

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'); 
     } 
    }); 
+0

工作很好..感谢您展示如何设置jqueryui图标..我有一个JSON数据的问题,这就是为什么网址没有阅读正确的最初..再次感谢 – bsr 2010-06-11 17:07:14

4

您可以让显示按钮成为网格中每一行的一部分,并使用custom formatter将其变为网址。

基于对维基的例子,你可能需要沿着

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

我尝试过类似的方法,由使一个单元格的链接(格式化程序:'showlink',formatoptions:getLink())..我可以按照你的建议把url列转换成链接,但可能会浪费一些空间。仍然不确定getCell方法有什么问题! – bsr 2010-06-11 16:00:20

+0

@bsreekanth:我想这取决于你的桌子有多宽。一个* Show *列只能增加50px左右的宽度。但是,它可以让人们在新窗口中打开链接,而不是在当前窗口中打开链接(不知道这个功能对你来说有多重要)。否则奥列格的解决方案看起来像它的工作。 – R0MANARMY 2010-06-11 16:20:32