Согласно ответу Олега можно использовать
код JavaScript:
$("#grid").jqGrid('navButtonAdd', '#grid_toppager', {
caption: "Excel",
buttonicon: "ui-icon-save",
onClickButton: function () {
document.forms['_export']._buffer.value = $("#grid").jqGrid('getGridParam', 'postData');
document.forms['_export'].submit();
}
});
index.aspx:
<form id='_export' method="post" action='<%= Url.Action( "Export", "Grid", new { _entity= Model.Name } ) %>'>
<input type="hidden" name="_buffer" id="_buffer" value="" />
</form>
Контроллер:
public ActionResult Export(string _entity, string _sidx, string _sord, string filters ) {
string where = "";
if (!string.IsNullOrEmpty(filters))
{
var serializer = new JavaScriptSerializer();
Filters filtersList = serializer.Deserialize<Filters>(filters);
where = filtersList.FilterObjectSet(entity);
}
if (string.IsNullOrEmpty(where))
where = " TRUE ";
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";
Response.Write(GetAllData(_entity, _sidx, _sord, where));
Response.End();
return View("Index");
}
параметр фильтра в контроллере имеет нулевое значение. Не знаю, какой способ передачи фильтров и параметров сортировки в метод экспорта.