MINIUI grid學習筆記


grid 控件
a.事件的綁定和移除
         grid.on("rowclick", fn); //綁定事件 (這個的話類似jquery的綁定事件)
         grid.un("rowclick", fn); //接觸綁定 (這個是在百度上查找的)
         注:解除事件綁定,必須要傳遞一個處理函數所以綁定的時候不要是匿名函數
b.綁定事件和移除事件都需要消耗一定的性能的
        單元格的繪制順序
        left ------>right
        top------>down

c.事件的常見觸發先后順序
       onDrawCell--->onCellBeginEdit----->onDrawsummarycell----->onCellCommitEdit
注意:
       setTimeout(function(){grid.on("drawsummarycell",onDrawsummarycell);},1000);
       如果這種情況的話那么該事件就失效了、因為在繪制單元格的時候不能被中斷
針對onDrawsummarycell匯總事件:
       在實現動態列的展示和隱藏的時候發現每一次動態改變的話、
       就會在匯總的事件中執行一次,所以最好是不要進行列的動態設置;性能開銷很大;
       針對匯總事件因為會涉及到獲取整個表格之中的數據所以、必須得所有的單元格渲染完成
       才能夠進行相應的計算;
      grid.Drawsummarycell 匯總展示的話、只要編輯任何一個單元格就會觸發單元格的重新繪 制所有單元格都會重新計算;

      關於grid.getData() 這個方法是獲取編輯之后的數據的整體數據;
      例如:$J.get("processdata").setValue($J.encode(grid.getData()));

d.指定更新行

     目前暫時只找到用updateRow的方式更新指定的單元格信息、

     還沒有找到單獨能夠獲取單元格的方法;這部分有待完善的

     對於 grid.updateRow(row,{field:value}) 中的field 不能使用字符串的直接拼接

 

     例如:grid.updateRow(row,{"process_"+j:value});//這個是不通過的

                grid.updateRow(row,{"process_j":value}); //這樣是可以的

                var p ="process_"+j;

                grid.updateRow(row,{p:value});//這樣也是通不過的

     猜想:可能存在js 解析執行順序有關、或者是和js的拼接方式也有關

               下面就進行了格式的轉換

                var c ={};

                c["process_"+j]=value;

                grid.updateRow(row,c);//就可以了

    結論:

                1、對象.屬性=value;//是能為對象的屬性賦值

                2、對象["屬性"]=value; //單單就是一個值的概念

                3、e.sender.text=text ;//是能為對象的屬性賦值 但是在input 控件中不能展示

                4、e.sender.getText(text);//這個是在input 中控件展示的;

                5、$J.get("xxx").getValue() 和$J.get("xxx").value 的差異在於前一個是真實的值,后一個是處理后的值

                6、<div field="process_46" name="process_46" headerAlign=‘center“ ></div>  該field="field_" 不能以field 開頭是特殊字符

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM