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 开头是特殊字符