3
我正在開發使用Spring 3.0,JSP,瓷磚的Web應用程序。 在JSP頁面中我已經來顯示使用jqGrid的一些數據之一,我已經提供了按鈕,以方便用戶對數據的jqGrid導出到Excel工作表。/導出到Excel的jqGrid數據春JSP
我已經成功創建的jqGrid和我能夠顯示數據。
我想知道如何實現一個按鈕的點擊「導出到Excel」功能。 我試過尋找幾個解決方案,但找不到具體的東西。
我的處理程序代碼:
@RequestMapping(method = RequestMethod.POST, value = "/workQueue")
@ResponseBody
public JqgridResponse loadXXXXXX(@RequestParam int page, @RequestParam int rows, @RequestParam String sidx, @RequestParam String sord){
List<ReferralCase> referrals = XXXXService.getReferralCases();
int endLimit = page * rows;
int startLimit = endLimit - rows;
if (endLimit > referrals.size()) {
endLimit = referrals.size();
}
JqgridResponse response = new JqgridResponse();
response.setRows(referrals.subList(startLimit, endLimit));
response.setPage(page);
response.setRecords(referrals.size());
response.setTotal((referrals.size()/rows) + 1);
return response;
}
我的JSP/JS代碼:
$("#XXXXWorkQueueGrid").jqGrid({
url:contextRoot+'/dart/workQueue',
datatype: 'json',
mtype: 'POST',
colNames: ['ID','Created','Last Name','First Name','A1','A2','Status','Updated','Workflow'],
colModel: [
{ name: 'recordId', index: 'recordId', width: 30 },
{ name: 'creationDate', index: 'creationDate', width: 40 },
{ name: 'lastName', index: 'lastName', width: 60 },
{ name: 'firstName', index: 'firstName', width: 60 },
{ name: 'A1', index: 'A1', width: 25 },
{ name: 'A2', index: 'A2', width: 25 },
{ name: 'status', index: 'status', width: 40 },
{ name: 'updateDate', index: 'updateDate', width: 40 },
{ name: 'workflow', index: 'workflow', width: 90 }
],onPaging: function() {
$(this).setGridParam({datatype: 'json'}).triggerHandler("reloadGrid");
},loadComplete: function() {
$(this).setGridParam({datatype: 'json'}).triggerHandler("reloadGrid");
},loadError: function(xhr,st,err) {
alert(err);
},onSelectRow : function(rowid, status, e) {
var selRow = $(this).getGridParam("selrow");
var selRecordId = $(this).getCell(selRow, 'recordId');
window.location = (contextRoot+"XXXX/referralDetails?recId=" + selRecordId);
},
pager: '#XXXXWorkQueuePager',
jsonReader: {
repeatitems: false,
root: "rows",
page: "page",
total: "total",
records: "records"
},
sortorder: "asc",
sortname: 'recordId',
gridview: true,
viewrecords: true,
hoverrows : false,
autowidth: true,
height: 'auto',
rowNum: 12,
forceFit: true,
altRows:true
});
$("#XXXXXWorkQueueGrid").jqGrid('navGrid','#XXXXXWorkQueuePager',{edit:false, add:false, del:false, search:false});
});
JqgridResponse只是由我創建的自定義DAO類。
任何幫助表示讚賞!
謝謝!這真的很有幫助。還有一個問題 - 有沒有辦法以某種方式導出Excel報表中的JQgrid標頭標籤,或者我必須在定義Java類中的Worksheet標頭時明確定義它? – tarares
不客氣,是的,我會直接在Java類中定義頭文件。如果你想在JQgrid和導出的Excel文件中使用相同的名字,我會把這些頭文件放在一個屬性文件中,並通過資源包訪問它們。 –
我已經成功將數據顯示到jQgrid中,現在我想將它導出到excel中。我不想爲控制器中的excel導出編寫另一種方法。我想爲excel導出使用相同的方法。我們應該怎麼做? –