1. 程式人生 > >easyUI datagrid 清空

easyUI datagrid 清空

系統 bar 使用 原因 應該 測試 一次 什麽 []

轉自:http://www.cnblogs.com/heioray/p/5016763.html

做一個管理系統,出於一些需要,經常要將一些datagrid清空。然後easyUI本身並沒有自帶的方法,然後自己動手豐衣足食吧。

清空無外乎兩種思路,刪除現有數據和填充空數據。

1.刪除數據

技術分享
            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);
            }
技術分享

之前在寫這種方法的時候寫成了下面的樣子,簡單輕便

            var rows = $(id).datagrid(‘getRows‘);
            for(var i=rows.length-1;i>=0;i--){
                $(id).datagrid(‘deleteRow‘,i);
            }

理論上來說,這兩個應該是沒有什麽區別的,畢竟index和i其實是沒啥區別的,各種測試驗證,兩個值也都是一致。但是有時候經常會出現一些無法全部刪除的情況。因此又換成了上面的寫法。原因至今。。。額。。。還沒想明白。。。哪位大俠如果知道請指教一下小弟~~

還有一個,下面的代碼也產生了一樣的問題,有時不能一次性完全清空

            var rows = $(id).datagrid(‘getRows‘);
            for(var i=0;i<rows.length;i++){
                $(id).datagrid(‘deleteRow‘,0);
            }

自己分析覺得可能是,每次都刪除第一行,刪除後datagrid要重新計算index,然後兩者出現了沖突導致刪除不能繼續。。。不知道是不是這個原因。。。後面再測試一下找找原因,弄明白了再貼過來。如果有路過的大俠知道的,求指教啊!

2.填充空數據

這個就簡單了,一行代碼結束戰鬥。使用datagrid自帶的loadData方法即可

(‘#dg_careersystem‘).datagrid(‘loadData‘,{total:0,rows:[]})

total:0舍棄也是可以的,畢竟不是每一個datagrid都需要做分頁的。

easyUI datagrid 清空