您好,登錄后才能下訂單哦!
jQuery easyui dataGrid 動態改變排序字段名,一般情況下,在使用的時候,我們會點擊相應字段進行排序,這里以JAVA為例,后端的實體類字段有可能和數據庫的字段不一致;
如:實體類中的屬性為userName,前臺filed="userName"
而數據庫的字段為user_name,這個時候如果把userName設置為排序列,然后去進行點擊,就會拋出異常,因為dataGrid在排序的時候會以filed="userName"中的字段名為排序字段;
問題:
怎么把userName和數據庫中的user_name進行做映射
解決方案:
1:在后臺服務器端對前臺傳入的排序字段進行判斷,并且手工進行映射為數據庫中的字段名;
優點:安全、數據庫字段不會暴露在前臺HTML頁面中;
缺點:后臺代碼中會出現很多的字段映射判斷;
2:在前臺點擊排序字段列的時候做判斷,通過JS腳本在前臺頁面判斷進行映射為數據庫中的字段名;
優點:方便,不需要修改服務器端代碼
缺點:不安全,數據庫真實字段名會暴露在HTML頁面中;
注意:如果對安全性要求比較高建議選擇第一種;
這里采用第二種方式,實現如下:
/** *在點擊排序字段時,改變傳入后臺的字段 *param對應onBeforeLoad事件的參數 *map自定義的字段映射Map */ onSortColumn=function(param,map){ //取出map中字段的映射關系值 var fieldSort=map[param.sort]; if(fieldSort!='' && fieldSort!=undefined){ //設置新的排序字段名,設置完之后,發送請求時一并會發送到服務端 param.sort=fieldSort; } }
使用方法:
//創建Map var map = new Map(); //為map添加值;key:對應filed="userName"中的字段名;value:對應數據庫的字段 map['userName']='user_name'; $('#datagrid').datagrid({ onBeforeLoad:function(param){ onSortColumn(param,map); } });
以上所述是小編給大家介紹的jquery easyui dataGrid動態改變排序字段名的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。