It seems that jqGrid event loadError
is not triggered when GET
returns error:
414 Request-URI Too Long
It can be reproduced by appending post data with data greater than 2048 bytes.
Maybe someone knows how to use POST
instead of GET
request in jqGrid?
$grid.jqGrid({
url:'/greenarrow_campaign_statistics/get_all_for_grid',
datatype: "json",
mtype: "POST",
colNames:['Campaign Name', 'Last Date', '# of mailings', 'Recipients', 'Hard bounces', '%', 'Opens', '%', 'Clicks', '%', 'Upgrades', '%', 'FBL Compl.', '%'],
colModel :[
{name:'campaign_name', index:'campaign_name', width:220, sorttype:'text',align:'left',fixed:true},
{name:'finishtime_str', index:'finishtime_sec', width:140, sorttype:'number',align:'center',fixed:true},
{name:'count', index:'mailings_cnt', width:70, sorttype:'number',align:'right',fixed:true,hidden:true},
{name:'recips_total', index:'recips_total', width:75, sorttype:'number',align:'right',fixed:true},
{name:'num_bounces_hard', index:'num_bounces_hard', width:60, sorttype:'number',align:'right',fixed:true},
{name:'num_bounces_hard_perc', index:'num_bounces_hard_perc', width:40, sorttype:'number',align:'right',fixed:true, formatter: percFormatter},
{name:'num_opens', index:'num_opens', width:75, sorttype:'number',align:'right',fixed:true},
{name:'num_opens_perc', index:'num_opens_perc', width:40, sorttype:'number',align:'right',fixed:true, formatter: percFormatter},
{name:'num_clicks', index:'num_clicks', width:70, sorttype:'number',align:'right',fixed:true},
{name:'num_clicks_perc', index:'num_clicks_perc', width:40, sorttype:'number',align:'right',fixed:true, formatter: percFormatter},
{name:'num_upgrade', index:'num_upgrade', width:60, sorttype:'number',align:'right',fixed:true},
{name:'num_upgrade_perc', index:'num_upgrade_perc', width:40, sorttype:'number',align:'right',fixed:true, formatter: percFormatter},
{name:'num_fbl', index:'num_fbl', width:60, sorttype:'number',align:'right',fixed:true},
{name:'num_fbl_perc', index:'num_fbl_perc', width:40, sorttype:'number',align:'right',fixed:true, formatter: percFormatter}
],
rowList:[20, 30, 50, 100, 500],
pager: '#pager',
rowNum:20,
shrinkToFit: true,
sortname: 'finishtime_sec',
viewrecords: true,
sortorder: "desc",
toolbar: [true, 'top'],
multiselect: true,
multiboxonly: true,
footerrow: true,
userDataOnFooter: true,
height: "auto",
caption:"",
beforeRequest: function()
{
$grid.jqGrid(
'appendPostData',
{
period: $period.val(),
from: $('#start_date').val(),
to: $('#end_date').val(),
campaigns: $('input[name="campaign_names"]').val(),
search_text: $('#search_text').val()
});
},
ondblClickRow: function(id)
{
$('#btn_edit').trigger('click');
},
loadComplete: function(data) {
$("tr.jqgrow:odd").css("background", "#DDDDDC");
},
loadError: function(xhr, status, error) {
jQuery("#rsperror").html("Type: " + status + "; Response: " + xhr.status + " " + xhr.statusText);
}
})