2011-08-09 138 views

回答

82

首先就可以得到所選擇的行的rowid相對於getGridParam方法和'selrow'作爲參數,然後可以使用getCell從相應的列得到的單元值:

var myGrid = $('#list'), 
    selRowId = myGrid.jqGrid ('getGridParam', 'selrow'), 
    celValue = myGrid.jqGrid ('getCell', selRowId, 'columnName'); 

'columnName'應與colModel'name'屬性中使用的名稱相同。如果您需要選定行的許多列中的值,則可以使用getRowData而不是getCell

+0

我有什麼做的,如果我想從子網格的價值?只是做相同的子網格ID? – Saad

+0

@Saad:你可以通過不同的方式使用子網格。如果使用[subgrid as grid](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid_as_grid),子網格就是另一個網格,所以你可以用它做所有事情,就像使用main格。每個網格通常由相應的「

」元素的ID標識。所以你應該使用你需要的網格ID。 – Oleg

+0

是否有任何方法可以在代碼之外使用這些單元格值?你想用它作爲'navgrid'中的編輯參數 – Saad

11

您可以使用這種方式也

var rowId =$("#list").jqGrid('getGridParam','selrow'); 
var rowData = jQuery("#list").getRowData(rowId); 
var colData = rowData['UserId']; // perticuler Column name of jqgrid that you want to access 
+1

這將返回整個html單元格而不是價值 –

3

我想補充,你還可以檢索jqGrid的單元格的值的基礎上,ROWID加列索引(而不是列名):

因此,獲取在第四列中的值(列索引#3),用於與主鍵ID 1234行,我們可以這樣做:

var rowID = 1234; 
var columnIndex = 3; 
var cellValue = $("#" + rowID).find('td').eq(columnIndex).text(); 

順便說一下,在一個完全無關的話題(但請不要投票給我):

我沒有意識到,你可以很容易地將文本框鏈接到你的jqGrid,所以你的用戶可以做到即時搜索,而無需打開搜索對話框。

enter image description here

要做到這一點,你需要這樣的一些HTML:

<input type="text" name="employeeName" id="employeeName" style="width:250px" /> 

<!-- This will be my jqGrid control and pager --> 
<table id="tblEmployees"></table> 
<div id="pager"></div> 

而且像這樣的一些JavaScript:

$("#employeeName").on('change keyup paste', function() { 
    SearchByEmployeeName(); 
}); 

function SearchByEmployeeName() 
{ 
    // Fetch the text from our <input> control 
    var searchString = $("#employeeName").val(); 

    // Prepare to pass a new search filter to our jqGrid 
    var f = { groupOp: "AND", rules: [] }; 

    // Remember to change the following line to reflect the jqGrid column you want to search for your string in 
    // In this example, I'm searching through the UserName column. 

    f.rules.push({ field: "UserName", op: "cn", data: searchString }); 

    var grid = $('#tblEmployees'); 
    grid[0].p.search = f.rules.length > 0; 
    $.extend(grid[0].p.postData, { filters: JSON.stringify(f) }); 
    grid.trigger("reloadGrid", [{ page: 1 }]); 
} 

這是一個真正的遊戲 - 對我來說更換器......它確實使jqGrid更加用戶友好。

用戶可以立即開始輸入他們的搜索字符串,而不需要打開搜索對話框,記得要將運算符更改爲「contains」,然後開始輸入並再次關閉搜索對話框。

1

喲必須declarate瓦爾...

var selectedRowId = $('#list').jqGrid ('getGridParam', 'selrow'); 
var columnName = $('#list').jqGrid('getCell', selectedRowId, 'columnName'); 

VAR nombre_img_articulo = $( '#列表')的jqGrid( 'getCell',selectedRowId, 'img_articulo')。

1

就結帳此:

解決方案1:

在次網格功能您必須編寫如下:

var selectid = $(this).jqGrid('getCell', row_id, 'id'); 
alert(selectid); 

哪裏row_id是您在亞網格定義爲參數變量。 而id是您想要獲取單元格值的列名稱。

解決方案2:

,如果你得到的jqGrid行ID在戒備然後設置主鍵ID作爲key:true在ColModels。所以你會在alert中獲得你的數據庫ID的值。就像這樣:

{name:"id",index:"id",hidden:true, width:15,key:true, jsonmap:"id"}, 
1

使用 「selrow」 獲取所選行ID

var myGrid = $('#myGridId');

var selectedRowId = myGrid.jqGrid("getGridParam", 'selrow');

然後用getRowData索引selectedRowId獲得所選行。

var selectedRowData = myGrid.getRowData(selectedRowId);

如果多選設置爲true的jqGrid,然後用「selarrrow」獲得所選行的列表:

var selectedRowIds = myGrid.jqGrid("getGridParam", 'selarrrow');

使用循環來遍歷所選行的列表:

var selectedRowData;

for(selectedRowIndex = 0; selectedRowIndex < selectedRowIds .length;selectedRowIds ++) {

selectedRowData = myGrid.getRowData(selectedRowIds[selectedRowIndex]); 

}

相關問題