擴大我有一個jqGrid的有兩個子網格和groupingView(),當我的數據從服務器加載到我的亞格並不想擴大電網。只有當我頁面或點擊刷新按鈕子網格展開,或者當我設置加載:假或取出groupingView()它將擴大,一切工作正常,但然後我出口到Excel沒有顯示任何數據。我希望我的子網格在數據首次加載時展開,而不是在我刷新或頁面後展開!jqGrid的亞格不是第一次加載
我已經試過:
$MyGrid.jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
,並試圖使一個觸發條件上loadComplete()刷新按鈕
*$(".ui-icon-refresh").each(function() {
$(this).trigger("click");
});*
這觸發按鈕不工作單擊時,但它不會在loadComplete()函數中自動啓動。
這裏是我的javascript:
function CreateOrdSummaryTable()
{
if ($("#DataTab_2").length === 0)
{
$("#tdBotRight").html("<table id='DataTab_2' class='dataContent' border='1' align='top'></table>" +
"<div id='PagerDataTab_2'></div>");
}
var $tableOrdSummary = $("#DataTab_2");
$tableOrdSummary.jqGrid({
url: '/Ord/WS/OrderWebSummary.php',
colNames: ["Sum of Order Mass","Customer", "Case", "Associated Mass" ,"Order Mass","Invoiced Mass","Shipped Mass","FGI Mass"],
colModel: [
{ name: "ORDITM", index: "ORDITM", resizable: true, width: 120},
{ name: "CUSTOMER", index: "CUSTOMER", resizable: true, width: 250},
{ name: "CASES", index: "CASES", summaryTpl: "<i>Order Group Total:</i>", summaryType: "sum", resizable: true, width: 250},
{ name: "ASSMASS", index: "ASSMASS", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 165, formatter: "integer"},
{ name: "ORDMASS", index: "ORDMASS", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 115, formatter: "integer"},
{ name: "DIST", index: "DIST", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 130, formatter: "integer"},
{ name: "WIP", index: "WIP", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 130, formatter: "integer"},
{ name: "MDB", index: "MDB", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 110, formatter: "integer"}
],
pager: jQuery("#PagerDataTab_2"),
shrinkToFit: false,
autoWidth: false,
caption: "Order Summary",
height: "100%",
rowNum: 1000,
//rowList: [50,100,200],
loadonce: false, //This is to get the Paging to turn on if set to (true)
gridview: true,
footerrow: true,
userDataOnFooter: true,
grouping : true,
groupingView : {
groupField : ["ORDITM"],
groupColumnShow : [true],
groupText: [ // user the name of a column with curly braces to use it in a summary expression.
// {0} is the formula placeholder for the column (defined by the summaryType property
"<i><b>{0} - {1} Order(s)</b></i>"
],
showSummaryOnHide: true,
groupSummary : [true],
groupCollapse : false
},
loadComplete: function() {
var AssSum = parseInt($tableOrdSummary.jqGrid('getCol', 'ASSMASS', false, 'sum'));
var OrdSum = parseInt($tableOrdSummary.jqGrid('getCol', 'ORDMASS', false, 'sum'));
var InvSum = parseInt($tableOrdSummary.jqGrid('getCol', 'DIST', false, 'sum'));
var ShpSum = parseInt($tableOrdSummary.jqGrid('getCol', 'WIP', false, 'sum'));
var FGISum = parseInt($tableOrdSummary.jqGrid('getCol', 'MDB', false, 'sum'));
$tableOrdSummary.jqGrid('footerData', 'set',
{
CASES: '<i><b>Grand Total:</b></i>',
ASSMASS: AssSum,
ORDMASS: OrdSum,
DIST: InvSum,
WIP: ShpSum,
MDB: FGISum
});
},
postData: {
"GroupID": function() {
return groupID();
}
},
subGrid: true,
subGridOptions: {
"plusicon" : "ui-icon-triangle-1-e",
"minusicon" : "ui-icon-triangle-1-s",
"openicon" : "ui-icon-arrowreturn-1-e",
"expandOnLoad" : false,
"reloadOnExpand" : true,
"selectOnExpand" : true
},
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id + "_t";
pager_id = "p_" + subgrid_table_id;
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
url:"/Ord/WS/OrderItemSummary.php",
datatype: "json",
colNames: ["Item", "RFD Date","Associated Mass", "Order Mass", "Invoiced Mass", "Shipped Mass", "FGI Mass"],
colModel: [
{ name: "ITEM", index: "ITEM", resizable: true, width: 60},
{ name: "RFDDATE", index: "RFDDATE", summaryTpl : "<i>Total:</i>", summaryType: "sum", resizable: true, width: 135},
{ name: "ASSMASS", index: "ASSMASS", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 180, formatter: "integer"},
{ name: "ORDMASS", index: "ORDMASS", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 115, formatter: "integer"},
{ name: "DIST", index: "DIST", summaryTpl: "<i>{0}</i>", summaryType: "sum", formatter: "integer", resizable: true, width: 130},
{ name: "WIP", index: "WIP", summaryTpl: "<i>{0}</i>", summaryType: "sum", formatter: "integer", resizable: true, width: 130},
{ name: "MDB", index: "MDB", summaryTpl: "<i>{0}</i>", summaryType: "sum", formatter: "integer", resizable: true, width: 115}
],
rowNum:50,
pager: pager_id,
shrinkToFit: false,
autoWidth: false,
height: '100%',
caption: "Item Summary",
// footerrow: true,
// userDataOnFooter: true,
grouping : true,
groupingView : {
groupField : ["ITEM"],
groupColumnShow : [false],
groupText: [ // user the name of a column with curly braces to use it in a summary expression.
// {0} is the formula placeholder for the column (defined by the summaryType property
"<i><b>Item(s): {0}</b></i>"
],
groupOrder: ["asc"],
groupSummary : [true],
groupCollapse : false,
groupDataSorted : true
},
loadComplete: function() {
// var InvSum = parseInt(jQuery("#"+subgrid_table_id).jqGrid('getCol', 'DIST', false, 'sum'));
// var ShpSum = parseInt(jQuery("#"+subgrid_table_id).jqGrid('getCol', 'WIP', false, 'sum'));
// var FGISum = parseInt(jQuery("#"+subgrid_table_id).jqGrid('getCol', 'MDB', false, 'sum'));
// var AssSum = parseInt(jQuery("#"+subgrid_table_id).jqGrid('getCol', 'ASSMASS', false, 'sum'));
// var OrdSum = parseInt(jQuery("#"+subgrid_table_id).jqGrid('getCol', 'ORDMASS', false, 'sum'));
// jQuery("#"+subgrid_table_id).jqGrid('footerData', 'set',
// {
// RFDDATE: '<i><b>Grand Total:</b></i>',
// ASSMASS: AssSum,
// ORDMASS: OrdSum,
// DIST: InvSum,
// WIP: ShpSum,
// MDB: FGISum
// });
},
postData: {
"GroupRwID": function() {
var myString = onRowSelected(row_id);
var finalString = groupRowID() + myString;
//console.log(finalString);
return finalString;
}
},
subGrid: true,
subGridOptions: {
"plusicon" : "ui-icon-triangle-1-e",
"minusicon" : "ui-icon-triangle-1-s",
"openicon" : "ui-icon-arrowreturn-1-e",
"expandOnLoad" : false,
"reloadOnExpand" : true,
"selectOnExpand" : true
},
subGridRowExpanded: function(subgrid2_id, row2_id) {
var subgrid_table_id2, pager_id2;
subgrid_table_id2 = subgrid2_id + "_t";
pager_id = "p_" + subgrid_table_id2;
$("#"+subgrid2_id).html("<table id='"+subgrid_table_id2+"' class='scroll'></table><div id='"+pager_id2+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id2).jqGrid({
url:"/Ord/WS/OrderCaseSummary.php",
datatype: "json",
colNames: ["Case", "Associated Mass"],
colModel: [
{ name: "CASES", index: "CASES", summaryTpl : "<i>Total:</i>", summaryType: "sum", key: true, resizable: true, width: 130},
{ name: "ASSMASS", index: "ASSMASS", summaryTpl: "<i>{0}</i>", summaryType: "sum", resizable: true, width: 180, formatter: "integer"}
],
rowNum:50,
pager: pager_id,
shrinkToFit: false,
autoWidth: false,
height: '100%',
caption: "Cases Summary",
postData: {
"CaseSum": function() {
var selRwData = '"CASES":"' + cases + '",' + '"ORDITM":"' + ordItm + '",' + '"CUSTOMER":"' + customer + '",' + '"ASSMASS":"' + assMass + '"' +"}";
var finalStr = groupRowID() + selRwData;
return finalStr;
}
}
});
$('#'+subgrid_table_id2).addClass("subGrids");
}
});
$('#'+subgrid_table_id).addClass("subGrids");
}
});
$tableOrdSummary.jqGrid("navGrid","#PagerDataTab_2",
{edit:false,add:false,del:false, refreshstat:"current"},
{},
{},
{},
{multipleSearch:false, multipleGroup:false, showQuery: false}
);
}
function ordSummaryView()
{
$("#DataTab_2").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); //This makes the call to refresh the grid.
}
function onRowSelected(rowId)
{
var $tableOrdSummary = $("#DataTab_2");
var rowData = $tableOrdSummary.jqGrid ('getRowData', rowId);
cases = rowData.CASES;
customer = rowData.CUSTOMER;
assMass = rowData.ASSMASS;
ordItm = rowData.ORDITM;
var selRwData = '"CASES":"' + cases + '",' + '"ORDITM":"' + ordItm + '",' + '"CUSTOMER":"' + customer + '",' + '"ASSMASS":"' + assMass + '"' +"}";
return selRwData;
}
function getTotals()
{
var $tableOrdSummary = $("#DataTab_2");
ids = $tableOrdSummary.jqGrid('getDataIDs');
int = 0;
for (var i = 0; i < ids.length; i++)
{
var rowId = ids[i];
var rowData = $tableOrdSummary.jqGrid ('getRowData', rowId);
var distTotal = rowData.DIST;
int += parseInt(distTotal);
}
return int;
}
$(document).ready(function()
{
CreateOrdSummaryTable();
});
功能爲GroupRowID():
function groupRowID()
{
var jsonSearchString = "";
var sGroupId = <?php echo "'" . $sGroupId . "'" ; ?>;
jsonSearchString = '"GROUPID":"' + sGroupId + '",';
return "{" + jsonSearchString;
}
**您使用的是哪個版本的jqGrid?**。對不起,但你的代碼中有很多東西不清楚。 '#tdBotRight'最初是在頁面上存在的,還是您生成它並動態放置它?爲什麼你的代碼包含外部'{...}'?代碼'$(「#DataTab_2」).jqGrid()。setGridParam({datatype:'local',..}))。trigger(「reloadGrid」);''** load **同一個網格。你明確地使用'loadonce:false',但是嘗試做一些關閉事情,但方式不對。你的目標是什麼? – Oleg
此外你的問題是關於「子網格不擴大在第一次加載」。你想展開**所有子網格**或加載時的某個特定子網格嗎?你使用'subGridOptions:{...,expandOnLoad:false,...}'。爲什麼子網應該擴大? jqGrid發送Ajax請求到'/ Ord/WS/OrderWebSummary.php'來加載主網格數據,然後你想發送多個請求到'/ Ord/WS/OrderItemSummary.php'爲每個子網格?加載主網格時加載所有子網格信息是否更好? – Oleg
我不希望子網格自動展開,這將是expandOnLoad:true。當數據首次在主網格中加載時,我按下子網格箭頭,它不會擴大!只有當我翻頁或刷新時,點擊時纔會展開。我明白你對多個請求的看法,但不管它應該工作。 – Wayne