【问题标题】:problem loading data in details jqGrid from master grid?从主网格详细加载 jqGrid 数据时出现问题?
【发布时间】:2011-04-06 07:51:30
【问题描述】:

当我首次发出呼叫时,它显示我的详细信息来自主电网的数据网格,但选择其他行时,它不会在详细信息网格中填充新数据。

jQuery("#list10").jqGrid({
    sortable: true,
    url: '/cpsb/unprocessedOrders.do?method=getInitialUnprocessedList',
    datatype: 'json',
    colNames: ['Order', 'Load', 'Gate Time', 'Stop', 'Customer', 'Status'],
    colModel: [
        { name: 'orderNumber', index: 'orderNumber', width: 120, align: "center",
          sorttype: "int", key: true },
        { name: 'loadNumber', index: 'loadNumber', width: 100, align: "center",
          sorttype: "int" },
        { name: 'latestTime', index: 'latestTime', width: 160, align: "center",
          align: "center" },
        { name: 'stopSeq', index: 'stopSeq', width: 80, align: "center",
          sorttype: "int" },
        { name: 'customerNumber', index: 'customerNumber', width: 60,
          align: "center", sorttype: "int" },
        { name: 'orderStatus', index: 'orderStatus', width: 120, align: "center" }
    ],
    rowNum: 10,
    rowList: [10, 20, 30],
    jsonReader: { repeatitems: false,
        root: function (obj) {
            return obj;
        },
        page: function (obj) { return 1; },
        total: function (obj) { return 1; },
        records: function (obj) { return obj.length; }
    },
    pager: '#pager10',
    sortname: 'Gate Time',
    sortorder: "desc",
    gridview: true,
    loadonce: true,
    viewrecords: true,
    multiselect: true,
    multikey: 'ctrlKey',
    caption: "Order Header",
    onSelectRow: function (ids) {
        if (ids == null) {
            ids = 0;
            if (jQuery("#list10_d").jqGrid('getGridParam', 'records') > 0) {
                jQuery("#list10_d").jqGrid('setGridParam', { url:
"/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails&orderNum=" + ids });
                jQuery("#list10_d").jqGrid('setCaption',
                        "Order Header: " + ids).trigger('reloadGrid');
            }
        }
        else {
            jQuery("#list10_d").jqGrid('setGridParam', { url:
"/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails&orderNum=" + ids });
            jQuery("#list10_d").jqGrid('setCaption',
                      "Order Details: " + ids).trigger('reloadGrid');
        }
    },
    height: '100%'
}); 
jQuery("#list10").jqGrid('navGrid','#pager10',
       {view:true,add:false,edit:false,del:false,searchtext:"Filter"},
       {},{},{},{multipleSearch:true});
$("#list10").jqGrid('hideCol', 'cb');

订单详情的第二个网格

jQuery("#list10").jqGrid('reloadGrid');
jQuery("#list10_d").jqGrid({
    height: 100,
    url: "/cpsb/unprocessedOrders.do?method=getUnprocessedOrderDetails&orderNum=",
    datatype: "json",
    colNames: ['Order', 'SKU', 'UPC', 'Item Description', 'Quantity Ordered',
               'Teach in Hold?'],
    colModel: [
        { name: 'orderNumber', index: 'orderNumber', width: 55 },
        { name: 'sku', index: 'sku', width: 55 },
        { name: 'upc', index: 'upc', width: 40, align: "right" },
        { name: 'itemDescription', index: 'itemDescription', width: 150,
          align: "right" },
        { name: 'quantityOrdered', index: 'quantityOrdered', width: 150,
          align: "right", sortable: false, search: false },
        { name: 'teachInId', index: 'teachInId', width: 150,
          align: "right", editable: true, edittype: "checkbox",
          formatter: 'checkbox', editoptions: { value: "true:false"} }],
    rowNum: 5,
    rowList: [5, 10, 20],
    jsonReader: { repeatitems: false,
        root: function (obj) {
            return obj;
        },
        page: function (obj) { return 1; },
        total: function (obj) { return 1; },
        records: function (obj) { return obj.length; }
    },
    pager: '#pager10_d',
    sortname: 'SKU',
    loadonce: true,
    viewrecords: true,
    sortorder: "asc",
    multiselect: true,
    multikey: 'ctrlKey',
    caption: "Order Detail",
    height: '100%'
}).navGrid('#pager10_d', { view: true, add: false, edit: false, del: false },
            {}, {}, {}, { multipleSearch: true });
$("#list10_d").jqGrid('hideCol', 'cb');
jQuery("#ms1").click(function () {
    var s;
    s = jQuery("#list10_d").jqGrid('getGridParam', 'selarrrow');
    alert(s);
});

编辑:刷新页面后,我可以查看不同的记录...但是选择一次后,其他选择不起作用

edit2:调试后我看到我正确地附加了 orderNum 参数,但这并没有对动作类进行任何调用....有什么想法吗?谢谢!

【问题讨论】:

    标签: jqgrid master-detail


    【解决方案1】:

    在我看来,您可以在这里找到有关您主要问题的答案:JqGrid Reload not working

    因为您在两个网格中都使用了loadonce:true,所以在第一次加载后,每个网格中的datatype 将从"json" 更改为"local"。在我看来,您应该只删除第二个(详细)网格的 loadonce:true 。如果您确实想使用loadonce:true,例如用于本地排序或本地分页,那么您应该在同一个调用jQuery("#list10_d").jqGrid('setGridParam',{url:"...", datatype: "json"}); 中将datatype 重置为"json"

    【讨论】:

    • 谢谢!它工作但不确定分页和排序..需要填充更多数据以检查分页..
    • 当我删除 loadonce 时,第二个网格的分页不起作用:true...知道我在这里做错了什么
    • trigger('reloadGrid'); 之前尝试重置rowNum(使用setGridParam({ rowNum: 10 }))参见stackoverflow.com/questions/3566820/…
    • @paul:我使用 ASP.NET 而不是 JSP,无法帮助您解决这个问题。在 ASP.NET 中,您可以定义母版页并放置一些具有不同 ID 的占位符:<asp:ContentPlaceHolder ID="TitleContent" runat="server" /><head> 块的<title> 元素中,另一个<asp:ContentPlaceHolder ID="HeadContent" runat="server" /><head> 块的末尾,还有一个@987654339 @在<div id="main">的中间,就像你做的那样。所以所有页面都以包括母版页和定义多达 3 个 <asp:Content 和一些 id 开始。
    • 我修改了您问题的标签,您立即收到了更多的观众、投票和一个听起来很有趣的答案。我写这篇文章只是为了表明选择问题的标签非常重要并且很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2017-12-21
    • 2014-11-07
    • 1970-01-01
    相关资源
    最近更新 更多