我有麻烦了,请帮我解决。我想在jqgrid的寻呼机中显示“导出为excel”按钮,它将导出当前搜索条件后检索的数据集jqgrid(基于当前过滤器)。我为我的jqgrid.Now使用“loadonce:true”设置。现在我想在搜索后从jqgrid的本地数据源导出数据。如果这是不可能的,那么当我点击搜索标准需要做的导航导出按钮时,我怎么能够将参数传递给服务器。我使用后端作为servlet。将jqgrid过滤的数据导出为excel或CSV
回答
我建议您在服务器上实现数据导出,并将当前搜索过滤器发布到后端。有关搜索参数的完整信息定义了jqGrid的postData
参数。 jqGrid search
的另一个布尔参数定义是否应该应用搜索过滤器。您最好忽略postData
参数的_search
属性并使用jqGrid的search
参数。
关于搜索过滤器的信息格式取决于是否使用使用的multipleSearch: true
选项。我个人总是使用它。在这种情况下,关于过滤器的完整信息将被放置在postData
参数的一个属性中:filters
属性。格式描述为here。它获取信息的代码如下所示
var $grid = $("#list"),
isFilterAreUsed = $grid.jqGrid('getGridParam', 'search'),
filters = $grid.jqGrid('getGridParam', 'postData').filters;
如果不使用multipleSearch: true
选项,您将无法使用复杂的过滤器和关于过滤器的信息将被放置在postData
参数的三个属性:searchField
,searchOper
和searchString
。
据奥列格回答这个问题,可以使用
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");
}
滤波器参数控制器具有空值。不知道哪种方法可以将过滤器和排序参数传递给Export方法。
为什么不只是使用jQuery.ajax将数据发布到服务器?你用'alert'来验证'$(“#grid”)。jqGrid('getGridParam','postData')'得到你需要的信息吗? – Oleg
@Oleg:我需要在单独的选项卡或提示用户下载xls文件时打开excel结果。 Ajax不支持this.'alert($(“#grid”))。jqGrid('getGridParam','postData')。filters)'返回 '{“groupOp”:“AND”,“rules”:[{“field”:“Klient_nimi”,“op”:“cn”,“data “:”emil“}]} ' – Andrus
我个人使用的情况下直接设置'window.location'(见[here](http://stackoverflow.com/q/6581791/315935)或[here]( http://stackoverflow.com/q/5759889/315935))。例如'window.location = myServerBaseUrl/Export +'?filters ='+ encodeURIComponent(filters);'onClickButton'内部。 – Oleg
- 1. 将mySQL导出为excel或csv
- 2. php + jqgrid +导出为excel
- 3. 如何将jqgrid导出为excel?
- 4. 将VirtualStringTree导出为excel,csv?
- 5. 将DataGridView数据导出为excel
- 6. 将mysql数据库导出为excel
- 7. 将html数据库导出为excel
- 8. 将数据导出为excel
- 9. 将XmlDocument导出为excel
- 10. 将过滤后的结果导出为excel
- 11. 将我的谷歌图表(表格)数据导出为excel或csv
- 12. 从Gridview数据导出为excel
- 13. 通过WCF将数据导出为excel
- 14. 如何将数据源的选定数据导出为excel?
- 15. 将jqgrid导出为excel不能在jsp中工作
- 16. 节点导出为excel
- 17. 导出为excel vb.net
- 18. SSIS导出为excel
- 19. 访问导出为excel
- 20. Dojo DataGrid导出为excel
- 21. Java servlet - 导出为excel
- 22. php表导出为excel
- 23. datagridview导出为excel
- 24. Telerik:Radgridview导出为excel
- 25. KendoUI导出为excel
- 26. 导出为excel问题
- 27. Rave Reports导出为excel
- 28. ExtJS Gridpanel导出为excel
- 29. PHP导出为excel
- 30. Telerik MVC导出为excel
嗨奥列格,我已经完成了你指定的工作,现在正在工作。我已经将你的代码放在我的自定义导航按钮的** onClickButton **事件中,并且在得到过滤器元素后,我通过ajax调用servlet方法,该方法给出了excel文件。感谢您的回复,它节省了我很多时间。 –
@Bhagwat:我很高兴知道我可以帮助你。不用谢! – Oleg
@Oleg:我试过你的答案,但是过滤器没有通过。我更新了Bhagwat问题并添加了测试用例 – Andrus