最近在作一個管理系統,出於一些須要,常常要將一些datagrid清空。而後easyUI自己並無自帶的方法,而後本身動手豐衣足食吧。測試
清空無外乎兩種思路,刪除現有數據和填充空數據。spa
1.刪除數據code
var rows = $(id).datagrid('getRows'); for(var i=rows.length-1;i>=0;i--){ var index = $('#dg_careersystem').datagrid('getRowIndex', rows[i]); console.log("i="+i+"&index="+index); $(id).datagrid('deleteRow',index); }
以前在寫這種方法的時候寫成了下面的樣子,簡單輕便blog
var rows = $(id).datagrid('getRows'); for(var i=rows.length-1;i>=0;i--){ $(id).datagrid('deleteRow',i); }
理論上來講,這兩個應該是沒有什麼區別的,畢竟index和i實際上是沒啥區別的,各類測試驗證,兩個值也都是一致。可是有時候常常會出現一些沒法所有刪除的狀況。所以又換成了上面的寫法。緣由至今。。。額。。。還沒想明白。。。哪位大俠若是知道請指教一下小弟~~get
還有一個,下面的代碼也產生了同樣的問題,有時不能一次性徹底清空console
var rows = $(id).datagrid('getRows'); for(var i=0;i<rows.length;i++){ $(id).datagrid('deleteRow',0); }
本身分析以爲多是,每次都刪除第一行,刪除後datagrid要從新計算index,而後二者出現了衝突致使刪除不能繼續。。。不知道是否是這個緣由。。。後面再測試一下找找緣由,弄明白了再貼過來。若是有路過的大俠知道的,求指教啊!class
2.填充空數據效率
這個就簡單了,一行代碼結束戰鬥。使用datagrid自帶的loadData方法便可grid
('#dg_careersystem').datagrid('loadData',{total:0,rows:[]})
total:0捨棄也是能夠的,畢竟不是每個datagrid都須要作分頁的。分頁
兩種方法都不錯,隨君選擇。我的更傾向於第二種,快捷輕便,效率更高。嘿嘿