如何从jqgrid数据填充文档标题

ASP .NET MVC2页面包含订单头数据(订单号,客户,订单数据等):

Cash 10 days

并命令在jqgrid中显示的行。

我正在寻找一种方法来填充来自控制器的json日期的订单标题数据,如jqgrid填充数据。 为了最小化请求,最好在jqgrid数据请求中返回头数据。 对于此附加参数,documentId将传递给控制器​​。

GetData将文档标题作为文档对象中的名称值对返回。 如何在jqgrid loadcomplete或其他地方将这些值分配给浏览器中的表单元素?

 public JsonResult GetData(int page, int rows, string filters, int documentId ) { var query = ...; var totalRecords = query.Count(); var documentHeader = new FormCollection(); // In production code those values are read from database: documentHeader.Add("Number", 123); // form contains input type='text' name='Number' element documentHeader.Add("PaymentTerm", "10"); // form contains select name='PaymentTerm' element ... return Json(new { total = page+1, page=page, document = documentHeader, rows = (from item in query select { id = item.Id.ToString(), cell = new[] { item.ProductCode, item.ProductName, item.Quantity, item.Price } }).ToList() }, JsonRequestBehavior.AllowGet); } 

如果我理解你的问题是正确的,你可以使用beforeProcessingloadComplete回调来根据服务器的响应填充表单数据。 两个回调( beforeProcessingloadComplete )的第一个data参数将包含从服务器返回的所有数据 。 因此,您可以访问data document属性,并且它具有与服务器上相同的格式。

我不知道为什么你使用FormCollection类型的document 。 在我看来,使用匿名类型的数据最本机:

 return Json(new { total = page + 1, page = page, document = new { number = 123, paymentTerm = 10 }, rows = (...) }, JsonRequestBehavior.AllowGet); 

但确切的document类型可能并不那么重要。

beforeProcessingloadComplete您可以使用相同格式的data.document的相应属性。 例如

 beforeProcessing: function (data) { var hearderData = data.document; if (hearderData) { if (hearderData.number) { $("#Number").val(hearderData.number); } if (hearderData.paymentTerm) { $("#PaymentTerm").val(hearderData.paymentTerm); } } }