Problem loading data in jqGrid details from main grid?

When I make a call for the first time, it shows the data in my part grid from the main grid, but when I select another row, it is not filled with new data in the part grid.

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'); 

Second grid for order details

 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); }); 

Edit: I can view different records after refreshing the page ... But after one choice, another choice does not work

edit2: after debugging, I saw that I am adding the orderNum parameter correctly, but that does not cause any action class call .... any idea? thank you

+1
source share
1 answer

It seems to me that the answer to your main problem can be found here: JqGrid Reload does not work .

Since you use loadonce:true in both grids, the datatype in each grid will be changed from "json" to "local" after the first load. It seems to me that you should just remove loadonce: true for the second (detailed) grid. If you want to use loadonce:true , for example, for local sorting or local search, then you must reset datatype - "json" in the same jQuery("#list10_d").jqGrid('setGridParam',{url:"...", datatype: "json"}); call jQuery("#list10_d").jqGrid('setGridParam',{url:"...", datatype: "json"}); .

+2
source

All Articles