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 開頭是特殊字符