繁体   English   中英

重新加载jqGrid的数据

[英]Reload data for jqGrid

我在主要详细信息模式下使用jqGrid。 当我单击主网格中的一行时,我运行SelectedRowHandler javascript函数,我想更新详细信息网格,但它不起作用。

将调用所选的行处理程序,并调用该操作,但是网格不会更新。

这是js

    function SelectedRowHandler(rowId) {
        var rowData = this.p.data[this.p._index[rowId]];           

        $.ajax({
            type: "POST",
            url: '/Invoice/invoiceitems2',
            data: { invoiceId: rowData.Id },
            datatype: "json",
            success: function (data) {
                $("#InvoiceItemsGrid").jqGrid("GridUnload");                    
                var mygrid = $("#InvoiceItemsGrid")[0];
                var myjsongrid = eval("(" + data.responseText + ")");
                myjsongrid = null;
                data = null;
            },
            viewrecords: true                
        });

        return true;
    }

该ActionResult是

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult InvoiceItems2(int invoiceId)
    {
        var response = new JqGridResponse();

        var invoiceItems = _invoiceItemRepository.GetMany(p => p.InvoiceId == invoiceId);
        foreach (var x in invoiceItems)
        {

            response.Records.Add(new JqGridRecord(Convert.ToString(x.InvoiceItemId), new InvoiceItemViewModel()
                                                                                         {
                                                                                             Id = x.InvoiceItemId,
                                                                                             PartNo = x.PartNo,
                                                                                             Description =
                                                                                                 x.Description,
                                                                                             Quantity = x.Quantity,
                                                                                             Price = x.Price,
                                                                                             Total =
                                                                                                 x.Quantity*x.Price
                                                                                         }));

        }


        return new JqGridJsonResult() {Data = response};


    }

我将不胜感激任何帮助。

  1. 您没有加载网格,只是进行了ajax调用。
  2. 为什么要使用rowid获取rowdata并再次使用rowdata获取rowid?

试试这个,而不是你的ajax电话

jQuery("#your_detail_grid_id").jqGrid('setGridParam',{url:"/Invoice/invoiceitems2?invoiceId="+rowId,page:1}).trigger('reloadGrid');

请参阅jqgrid演示中的Master Detail

高级->主细节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM