I have used the following code to post the subgrid data. I really don't know about the performance wise. So far its working fine. If anybody have a different solution please post it.
$('#btnSubmit').click(function () {
var maingridcount = $("#simpleGrid").getGridParam("reccount");
var rids = $('#simpleGrid').jqGrid('getDataIDs');
var subgridNameArray = [];
var allsubgriddata = null;
for ( var i = 1; i <= maingridcount; i++)
{
var nth_row_id = rids[i - 1];
var subgridName = "#simpleGrid_" + nth_row_id + "_t";
subgridNameArray[i-1] = subgridName;
}
$(subgridNameArray).each(function () {
var gridData = $(this.toString()).jqGrid('getRowData');
if (JSON.stringify(gridData) != '{}' && allsubgriddata == null) {
if (allsubgriddata == null) {
allsubgriddata = gridData;
}
else {
allsubgriddata = allsubgriddata.concat(gridData);
}
}
});
$(allsubgriddata).each(function () {
var vao = this.OperatingAmt.indexOf("value=");
var vad = this.DirectAmt.indexOf("value=");
var vaa = this.AdjustAmt.indexOf("value=");
if (vao > 0) {
var na = this.OperatingAmt.indexOf(" name=");
this.OperatingAmt = this.OperatingAmt.substring(vao + 6, na);
}
if (vad > 0) {
var na = this.DirectAmt.indexOf(" name=");
this.DirectAmt = this.DirectAmt.substring(vad + 6, na);
}
if (vaa > 0) {
var na = this.AdjustAmt.indexOf(" name=");
this.AdjustAmt = this.AdjustAmt.substring(vaa + 6, na);
}
});
var dataToSend = JSON.stringify(allsubgriddata);
$.ajax({
type: 'POST',
url: '@Url.Action("SaveSubGridDataNew")',
data: dataToSend,
traditional: true,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function () {
jQuery("#simpleGrid").trigger('reloadGrid');
}
});
})