2013-07-08 40 views
0

我目前在ASP MVC4 Razorview頁面中使用JQGrid。我的網頁的結構是在MVC4中顯示JQGrid的行內容

<body onload="TimeStamp();"> 
    <h2>Events as of <div id="timestampDiv"></div></h2> 

    <div> 
     @Html.Trirand().JQGrid(Model.EventsGrid, "JQGrid1") 
    </div> 
</body> 

我想這樣做是顯示記錄的頁面上的各個元素被點擊的jqGrid的一排。想一想Windows事件查看器,當你點擊一個事件時,表單的其餘部分將填充特定的事件信息。理想情況下,網格和記錄信息將位於同一頁面上。

我的問題:我對JQuery和JQGrid非常陌生。我怎樣才能做到這一點?有沒有可能我正在考慮這種方式,還是有另一種更好的方法來獲得類似我想要的東西?

謝謝。

更新:我曾嘗試:

​​

這導致我的網格從頁面上消失。

UPDATE2:在我看來(告訴我,如果我錯了),上面的代碼重建一個jqgrid(像一個構造函數),並需要更多的代碼工作。由於我的JQGrid已經創建並傳入視圖,我必須在控制器中設置onselectrow事件處理程序。有任何想法嗎?

回答

1

是的,這是可能的。您必須鉤住行單擊事件並使用它來填充表單。 更具體地說,你就必須掛鉤onSelectRow事件的jqGrid

。例如:您的網格具有ID JQGrid1

我們將在JavaScript代碼中使用該ID掛鉤onSelectRow事件類似如下:

$("#JQGrid1").jqGrid({ 
    onSelectRow: function(id){ 
     // using id here to get details from server and display them 
    } 
}); 

更新:

既然你已經使用,上述服務器端的包裝已經創建網格代碼將嘗試重新初始化網格。試試下面的代碼,看看它是否有幫助。

$('#JQGrid1').jqGrid('setGridParam', 
{ 
    onSelectRow: function(id){ alert(id); } 
}); 
+0

感謝您的回答。你能詳細說明術語「鉤子」嗎?我知道我需要使網格與頁面進行通信,但我不知道會是什麼樣子。你可以給我一些更多的搜索條件? – Mike

+0

查看我的更新回答 –

+0

非常好。謝謝。我會給你一個旋轉,讓你知道它是如何去。 – Mike