0
Я хочу использовать jqgrid с вложенными субгридами. Я извлекаю данные из базы данных через вызов Ajax с типом контента JSON. Так выглядит моя структура JSON. Мне нужно сформировать объект массива из него.Создание многомерного массива с использованием JQuery foreach
records :
{
contracts[
{
contractid: 1,
contractname: contractname1,
status: "open",
contractLines: [ --contractLine1
{
contractLineid: 11,
item name: "contractLine1",
description : "abcd",
products: [
{
productid : 21,
productname : "product21"
},
{
productid : 22,
productname : "product22"
}
]
},
{
contractLineid: 12, contractLine2
item name: "contractLine1",
description : "abcd",
products: [
{
productid : 23
productname : "product23"
},
{
productid : 24,
productname : "product24"
}
]
}
]
},
{
contractid: 2,
contractname: contractname2,
status: "open",
contractLines: [ --contractLine1
{
contractLineid: 2,
item name: "contractLine21",
description : "abcd",
products: [
{
productid : 31,
productname : "product31"
},
{
productid : 32,
productname : "product32"
}
]
},
{
contractLineid: 22, -- contractLine2
item name: "contractLine22",
description : "abcd",
products: [
{
productid : 33
productname : "product33"
},
{
productid : 34,
productname : "product34"
}
]
}
]
}
]
}-- records
я связывание моего 3 слоя данных столбцов сетки так:
var records = [];
var records1 = [];
var records2 = [];
//============================================================
// build records of Contracts
//============================================================
$.each(contracts, function (index, contract) {
records[index] = {};
records[index]['contractid'] = contract.ID;
records[index]['description'] = contract.Description;
records[index]['status'] = contract.Status.Value;
records[index]['classification'] = contract.Classification;
records[index]['startdate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateStart);
records[index]['enddate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateEnd);
records[index]['canceldate'] = PD.Utilities.FormatDateDDMMMYYYY(contract.DateCancel);
//============================================================
// build records of Contract Lines
//============================================================
$.each(contract.ContractLines, function (index2, contractLine) {
records1[index2] = {};
records1[index2]['contractlineid'] = contractLine.ID;
records1[index2]['itemname'] = contractLine.ItemName;
records1[index2]['startdate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateStart);
records1[index2]['enddate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateEnd);
records1[index2]['canceldate'] = PD.Utilities.FormatDateDDMMMYYYY(contractLine.DateCancel);
records1[index2]['vendorname'] = contractLine.Vendor.Name;
records1[index2]['description'] = contractLine.Description;
records1[index2]['isshipped'] = contractLine.IsShipped;
//============================================================
// build records of Products
//============================================================
$.each(contractLine.Products, function (index3, product) {
records2[index3] = {};
records2[index3]['productid'] = product.ID;
records2[index3]['name'] = product.Name;
records2[index3]['description'] = product.Description;
});
});
});
Я привязки данных к моей колонкам сетке, таким образом, их хранение в 3 массивах (как показано выше). Но мне нужно сформировать из них один объект массива. или вместо хранения в 3 массивах мы можем хранить в 1 массив? – nani