2010-06-11 53 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