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

 

posted on 2018-09-17 11:40  天之痕羽翼  阅读(4800)  评论(0编辑  收藏  举报