2013-12-11 74 views
4

我正在開發一個使用JqGrid生成報表的ASP.NET mvc項目。對於報告生成,我生成2個不同的報告。第二份報告將根據第一份報告的價值生成。 爲了得到列的值,我使用的jqGrid的OnCellSelect事件,JqGrid:如何從onCellSelect事件獲取所有列值?

事件:

$('#Report1').jqGrid({ 
... 
.. 
colNames: ['name1','name2','name3','name4','name5','name6','name7'], 
         colModel: [ 
         {....}, 
         { ... }, 
         { ...}, 
         {...}, 
         { ...}, 
         { ...}, 
         { ... } 
        ], 
         jsonReader: { 
          root: 'DD_data', 
          id: 'name1', 
          repeatitems: false 
         }, 
         pager: $('#pager'), 
//Event fires when clicked on name7 
onCellSelect: function (rowid, index, contents, event) { 

//Code for generating Second Report based on First report data// 
$('#Report2').jqGrid({ 
... 
... 
}); 
} 
}); 

在這裏,在小區選擇事件,我只是讓ROWID,我的鑰匙,並選定單元格的內容。

但我還需要從選定列的名稱2,名稱3和名稱4數據生成第二個報告。

在JqGrid中可能嗎?

任何幫助表示讚賞。

回答

8

您可以使用getCellgetRowData從基於rowid的行獲取數據。如果使用datatype: "local"或者如果在網格#Report1中使用loadonce: true選項,那麼可以使用getLocalRow,它比getRowData有一些優點,但只有在數據保存在內部data參數內的本地時纔有效。只有在datatype不是"json""xml"或者它是"json""xml",但使用loadonce: true選項時纔會填充參數。

,你可以用最簡單的代碼將

onCellSelect: function (rowid) { 
    var rowData = $(this).jqGrid("getRowData", rowid); 
    // now you can use rowData.name2, rowData.name3, rowData.name4 ,... 
} 

getLocalRow使用可能有一定的優勢(包括性能優勢),但你應該確認它是否與datatypeloadonce您在使用協同工作網格#Report1

+0

感謝它的工作.. – Cyber

+0

@Cyber​​:不客氣! – Oleg

相關問題