easyui datagrid 可过滤行的数据表格 导出
//过滤栏表格导出数据
/* xukf
* id datagrid id
* url Action 路径
*/
function exportExcelToFilter(id){
var filterRules = $(\’#\’+id).datagrid(\’options\’).filterRules;
var params = $(\’#\’+id).datagrid(\’options\’).queryParams;
var url = $(\’#\’+id).datagrid(\’options\’).url;
for (var i = 0; i < filterRules.length; i++) {
var obj = filterRules[i];
if (obj.field == \’applicationDate\’) {
if (obj.op == \’greater\’) {
params.rdGt = obj.value;
} else if (obj.op == \’less\’) {
params.rdLt = obj.value;
} else if (obj.op == \’equal\’) {
params.rdGt = obj.value;
params.rdLt = obj.value;
}
}else{
params[obj.field] = obj.value;
}
}
var sortName = $(\’#\’+id).datagrid(\’options\’).sortName;
var sortOrder = $(\’#\’+id).datagrid(\’options\’).sortOrder;
params[“order”]=sortOrder;
params[“sort”]=sortName;
params[“operate”]=”export”;
var columnJsonf = $(\’#\’+id).datagrid(“options”).frozenColumns;
var columnJson = $(\’#\’+id).datagrid(“options”).columns;
var form = $(\'<form></form>\’);
// 设置属性
form.attr(\’action\’, url);
form.attr(\’method\’, \’post\’);
// form的target属性决定form在哪个页面提交
// _self -> 当前页面 _blank -> 新页面
form.attr(\’target\’, \’_self\’);
// 创建Input
var input = $(\'<input type=”hidden” name=”columnJson” />\’);
var inputRow = $(\'<input type=”hidden” name=”rows” value=”10″ />\’);
var inputPage = $(\'<input type=”hidden” name=”page” value=”1″ />\’);
form.append(inputRow);
form.append(inputPage);
var jsonArray=new Array();
var arrayOn=new Array();
for (var i=0;i<columnJsonf.length;i++)
{
for (var j=0;j<columnJsonf[i].length;j++)
{
var col=columnJsonf[i][j];
col.rowspan=columnJson.length;
arrayOn.push(col);
}
}
for (var i=0;i<columnJson.length;i++)
{
if(i==0){
for (var j=0;j<columnJson[i].length;j++)
{
var colj=columnJson[i][j];
arrayOn.push(colj);
}
jsonArray.push(arrayOn);
}else{
jsonArray.push(columnJson[i]);
}
}
// alert(JSON.stringify(jsonArray));
input.attr(\’value\’, JSON.stringify(jsonArray));
// 附加到Form
form.append(input);
form.appendTo(“body”);
form.css(\’display\’, \’none\’);
// 提交表单
form.form(\’submit\’, {
url:url,
onSubmit: function(param){
$.each(params, function(name, value) {
param[name]=value;
});
}
});
form.remove();
}