1
我在多選模式下使用JqGrid並恢復用戶的選擇。 JqGrid的定義如下:ASP.NET MVC/JqGrid:JSON Id是否已處理並可恢復?
$("#StatusList").jqGrid({
url: '@Url.Action("UpdateStatusList", "Inventory")',
datatype: 'json',
mtype: 'GET',
colNames: ['Status', 'statusId'],
colModel: [
{ name: 'Status', index: 'Status', align: 'left', sortable: false },
{ name: 'statusId', index: 'statusId', hidden: true}]
});
我對服務器和客戶端之間的所有通信沒有任何問題。一切正常。但我覺得這個功能發送JSON數據填充的jqGrid的時候我好像複製數據:
public ActionResult UpdateStatusList()
{
var jsonData = new
{
rows = (from status in DatabaseInMemory.WoodStatus.GetEntities()
select new
{
i = status.ID,
cell = new string[] { status.Name,
status.ID.ToString() }
}).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
正如你所看到的ID傳遞兩次: - 爲JSON標識。 - 用於幫助我從網格中恢復ID的隱藏列。
回到客戶端,JSON ID不在selarrrow屬性中。該屬性擁有基於網格中位置的ID。我用它來獲取選定的數據,並恢復真正的ID。
JqGrid是否處理並保存通過JSON數據傳遞的id,或者是否丟失,並且始終需要隱藏的列來跟蹤行?
發佈了一個重構命題,用於根據您的回答創建我的網站的示例:http://www.timdavis.com.au/code/jquery-grid-with-asp-net-mvc/。謝謝:) – Matthieu
@Matthieu:看看[答案]的更新部分(http://stackoverflow.com/questions/5500805/asp-net-mvc-2-0-implementation-of-searching-in-jqgrid/ 5501644#5501644)。您可以下載[VS2008演示項目](http://www.ok-soft-gmbh.com/jqGrid/jqGridDemo.zip)或[VS2010演示項目](http://www.ok-soft-gmbh.com /jqGrid/jqGridDemoVS2010.zip)。你可以在[頁面](http://haacked.com/archive/2009/04/14/using-jquery-grid-with-asp.net-mvc.aspx)上搜索「Oleg」並找到我的錯誤報告。這些錯誤是在菲爾哈克的頁面上修復的,但不是蒂姆戴維斯的演示副本。 – Oleg
不錯,將來會用你的答案作爲參考,thx! – Matthieu