JQGrid Master Detail选择/ MultiSelect在细节网格上不起作用

我在ASP.NET MVC 3(默认视图引擎)中尝试Master Detail场景。

我能够在http://www.trirand.com/blog/jqgrid/jqgrid.html上查看以下代码并获取主要详细信息。 问题是,当我在细节中选择任何行时,第一行似乎被选中/未选中点击链接以查找所选id的返回,null,null,null,null,nul

有没有人经历过同样的事情。

如果您能指出我使用JQGrid主细节工作ASP.NET MVC示例,将非常感谢。

问候,

损伤

编辑 – 代码

1-查看页面

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/default.Master" Inherits="System.Web.Mvc.ViewPage" %>  Orders Available           jQuery(document).ready(function () { jQuery("#list10").jqGrid({ url: '/order/list/', datatype: "json", mtype: 'post', colNames: ['PurchaseOrder', 'SalesOrder', 'OrderDate', 'Supplier', 'Status', "Details"], colModel: [ { name: 'PurchaseOrder', index: 'PurchaseOrder', width: 100, align: 'left' }, { name: 'SalesOrder', index: 'SalesOrder', width: 100, align: 'left' }, { name: 'OrderDate', index: 'OrderDate', width: 75, align: 'left' }, { name: 'Supplier', index: 'Supplier', width: 150, align: 'left' }, { name: 'Status', index: 'Status', width: 50, align: 'left' }, { name: 'Details', index: 'Details', width: 50, align: 'left' } ], rowNum: 10, rowList: [10, 20, 30], pager: '#pager10', sortname: 'id', viewrecords: true, sortorder: "desc", multiselect: false, caption: "Invoice Header", onSelectRow: function (ids) { if (ids == null) { ids = 0; if (jQuery("#list10_d").jqGrid('getGridParam', 'records') > 0) { jQuery("#list10_d").jqGrid('setGridParam', { url: "/order/detail/id=" + ids, page: 1 }); jQuery("#list10_d").jqGrid('setCaption', "Invoice Detail: " + ids) .trigger('reloadGrid'); } } else { jQuery("#list10_d").jqGrid('setGridParam', { url: "/order/detail/id=" + ids, page: 1 }); jQuery("#list10_d").jqGrid('setCaption', "Invoice Detail: " + ids) .trigger('reloadGrid'); } } }); jQuery("#list10").jqGrid('navGrid', '#pager10', { add: false, edit: false, del: false }); jQuery("#list10_d").jqGrid({ height: 100, url: "/order/detail/", datatype: "json", colNames: ['Stock Number', 'Description', 'Available', 'Required'], colModel: [ { name: 'PartNumber', index: 'StockNumber', width: 100, align: 'left' }, { name: 'Description', index: 'Description', width: 200, align: 'left' }, { name: 'Available', index: 'Available', width: 75, align: 'left' }, { name: 'Required', index: 'Required', width: 75, align: 'left' } ], rowNum: 5, rowList: [5, 10, 20], pager: '#pager10_d', sortname: 'item', viewrecords: true, sortorder: "asc", multiselect: true, caption: "Invoice Detail", beforeSelectRow: function(rowid, e) { return true; } }).navGrid('#pager10_d', { add: false, edit: false, del: false }); jQuery("#ms1").click(function () { var s; s = jQuery("#list10_d").jqGrid('getGridParam', 'selarrrow'); alert(s); }); });    

Summary

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32


Invoice Detail
Get Selected id's

2- JSon结果

a)对于主表

 {"total":10,"page":1,"records":4,"rows":[{"id":"4cf2c07d-1f13-4add-8bf9-3e7bca441a69","cell":["NV32653-A","23434324","03/01/2010","MY Supplier","Ready for Use","\u003ca href=\u0027#\u0027\u003eDetails\u003c/a\u003e"]},{"id":"54f3b266-dd14-4137-ab76-6d4a1fd7fe7c","cell":["NV32653-A","23434324","03/01/2010","MY Supplier","Ready for Use","\u003ca href=\u0027#\u0027\u003eDetails\u003c/a\u003e"]},{"id":"ab63a5ae-1f00-43ed-a50e-d8fb60ff2df2","cell":["NV32653-A","23434324","03/01/2010","MY Supplier","Ready for Use","\u003ca href=\u0027#\u0027\u003eDetails\u003c/a\u003e"]},{"id":"484c0e05-80c6-4259-8a29-ca6be83037e4","cell":["NV32653-A","23434324","03/01/2010","MY Supplier","Ready for Use","\u003ca href=\u0027#\u0027\u003eDetails\u003c/a\u003e"]}]} 

b)细节

 {"rows":[{"id":null,"cell":["PART A","Apple ","10","0"]},{"id":null,"cell":["PART B","Orange","12","0"]},{"id":null,"cell":["PART C","Banana","8","0"]},{"id":null,"cell":["PART D","Bread","10","0"]},{"id":null,"cell":["Part E","Jam","9","0"]}]} 

一些图像

替代文字替代文字替代文字

更新1发现详细信息json包含ID字段的null。 我会很快纠正的。

在Master / Detail场景中您必须考虑的唯一问题是在两个表中选择id。 重要的是要理解,jqGrid使用从服务器返回的id作为网格的

元素的id。 因此,如果您使用两个表相同的ID(重复),您将有冲突。

您仍然遇到Master / Detail场景的实现问题,您应该使用代码示例和一些测试数据附加您的问题。 可以将测试JSON数据保存到文本文件以模拟服务器响应,因此不需要服务器代码。