jquery easyui dataGridはソートフィールド名を動的に変更し、ソート列名が一致しない
詳細
属性名がpropertyNameで、列名がproperty_である場合name、ソートが間違っています.
jquery jqGridはソート列名を指定できますが、easyuiのdataGridはありません.
カラム名の変換が必要です.
一、フロントはjsで変換する
利点:効率的で、編集しやすく、サーバリソースを節約できます.
欠点:カラム名を暴露する(ただし、一般的なイントラネットシステムでは、これは受け入れられる)
ロード前にソート変換
DataGrid指定
sortName:'propertyName',
sortOrder:'asc',
multiSort:true,
onBeforeLoad:dgOnBeforeLoad
sortNameは、カラム名ではなく属性名を書きます.これにより、dataGridでどのカラムでソートされるかの問題が表示されません.
複雑な方法は、一般的にsortMapを構成する必要はありません.
二、バックグラウンドはjavaで変換する
利点:カラム名を露出しない
欠点:サーバーリソースで、修正が不便
サーバー側、書くつもりはなくて、参考に供します
参照先:
jquery easyui dataGrid動的変更ソートフィールド名
http://blog.csdn.net/lht0211/article/details/45395637
属性名がpropertyNameで、列名がproperty_である場合name、ソートが間違っています.
jquery jqGridはソート列名を指定できますが、easyuiのdataGridはありません.
カラム名の変換が必要です.
一、フロントはjsで変換する
利点:効率的で、編集しやすく、サーバリソースを節約できます.
欠点:カラム名を暴露する(ただし、一般的なイントラネットシステムでは、これは受け入れられる)
ロード前にソート変換
DataGrid指定
sortName:'propertyName',
sortOrder:'asc',
multiSort:true,
onBeforeLoad:dgOnBeforeLoad
// map
var sortMap = {};
sortMap['propertyName']='property_name';
//
//dataGrig onBeforeLoad
function dgOnBeforeLoad(param){
if(param.sort){ // :param.order
var sortResult = "";
var sorts = param.sort.split(",");
var sort;
for(var i=0; i0){
sortResult = sortResult.substring(0,sortResult.length-1);
}
param.sort = sortResult;
}
sortNameは、カラム名ではなく属性名を書きます.これにより、dataGridでどのカラムでソートされるかの問題が表示されません.
複雑な方法は、一般的にsortMapを構成する必要はありません.
//
function dgOnBeforeLoad(param){
if(param.sort){
param.sort=sortConvert(param.sort,null,null,true);
}
}
/**
* , ( )
* @param paramSort , :addTime,modifyTime,id
* @param sortMap Map, , null
* var sortMap = {};
* sortMap['propertyName']='property_name';
* @param ignoreConvert , , :propertyName1,propertyName2, null
* @param otherConvert ,
* @returns {String} //add_time,modify_time,id
*/
function sortConvert(paramSort, sortMap, ignoreConvert, otherConvert){
var ignoreMap = {};
if(ignoreConvert && ignoreConvert.length>0){
var ignoreConverts = ignoreConvert.split(",");
for(var i=0; i0){
sortResult = sortResult.substring(0,sortResult.length-1);
}
//alert(sortResult);
return sortResult;
}
二、バックグラウンドはjavaで変換する
利点:カラム名を露出しない
欠点:サーバーリソースで、修正が不便
サーバー側、書くつもりはなくて、参考に供します
/**
* ,
* addTime desc, modifyTime desc,id asc
* add_time desc,modify_time desc,id asc
* @param orderByStr
* @return
*/
public String orderByConvert(String orderByStr){
String[] orderBys = orderByStr.split(",");
String sort;
String order;
char ch;
StringBuffer sb = new StringBuffer();
for(String orderBy : orderBys){
orderBy = orderBy.trim();
String[] sortOrders = orderBy.split(" ");
sort = sortOrders[0];
order = sortOrders[1];
for(int i=0; i0){//
return sb.substring(0, sb.length()-1);
} else {
return sb.toString();
}
}
参照先:
jquery easyui dataGrid動的変更ソートフィールド名
http://blog.csdn.net/lht0211/article/details/45395637