學習EasyUI已有一段時間了,現在開始逐步把平時學習的細節和難點記錄下來。
1. datagrid選中多條記錄的語句是:
var rows = $('#dg').datagrid('getSelections'); ,而不是"$('#dg').datagrid('getSelections')"選中一條記錄。
2. 刪除多條記錄必須給數據庫傳達刪除指定數據表的記錄,一般是數據表唯一的編號id,可以給數據庫傳達一個id數組。聯想到可以
采用Input表單數組,但在datagrid不知怎樣組合,就放棄這種想法。改用js循環讀取想要刪除的編號ID,賦給數組ids[]。
1 var ids=[]; 2 var rows = $('#dg').datagrid('getSelections'); 3 for(var i=0; i<rows.length; i++){ 4 ids.push(rows[i].id); 5 }
3.在datagrid屬性中添加chackbox選框。frozenColumns:[[{field:'ck',checkbox:true}]]

1 <script type="text/javascript"> 2 $(function(){ 3 $('#dg').datagrid({ 4 title:'通訊錄', 5 width:550, 6 height:350, 7 toolbar:'#toolbar', 8 url:'__APP__/Curd/read', 9 pagination:true, 10 pageSize:5, 11 pageList:[5,10,15,20], 12 rownumbers:true, 13 loadMsg:'數據裝載中......', 14 frozenColumns:[[ 15 {field:'ck',checkbox:true} 16 ]], 17 columns:[[ 18 {title:'姓名',field:'firstname',width:'100',rowspan:2,align:'center'}, 19 {title:'全稱',field:'lastname',width:'100',rowspan:2,align:'center'}, 20 {title:'電話',field:'phone',width:'100',rowspan:2,align:'center'}, 21 {title:'郵箱',field:'email',width:'150',rowspan:2,align:'center'}, 22 {title:'編號',field:'id',width:'30',rowspan:2,align:'center'}, 23 ]] 24 }) 25 26 })
4.如果pagination中不想顯示英文,可引入easyui中文js標簽。
1 <script type="text/javascript" src="__ROOT__/js/easyui-lang-zh_CN.js"></script>
5.如果刪除后數據庫沒有記錄,則刪除后會出現datagrid重新加載表格數據沒有刪除,頁面重新加載后datagrid則顯示為空。解決辦法:判斷生成json數據時,當記錄為空時,賦值''給datagrid表格。

1 f ($total==0){ $userlist=array("firstname"=>'',"lastname"=>'',"phone"=>'',"email"=>'',"id"=>''); 2 json='{"total":'.$total.',"rows":['.json_encode($userlist).']}'; 3 echo $json; 4 }else{ $json='{"total":'.$total.',"rows":'.json_encode($userlist).'}';//重要,easyui的標准數據格式,數據總數和數據內容在同一個json中 5 echo $json; 6 }
6.后台處理。有2種方法:
一、將傳遞過來的參數id數組賦值給$condition['id']=array('in',$id),利用in操作一次刪除多條記錄。
1 $condition['id']=array('in',$id); 2 $result=$User->Where($condition)->delete();
二。循環讀取傳遞過來的id參數數組,逐條刪除指定id的記錄。
1 foreach($id as $ide){ 2 $result=$User->Where('id='.$ide)->delete(); 3 }
以下是界面效果,僅供參考。