easyui datagrid 单击行不选择行

    • 其实这个功能可以通过选择单击事件的作用域来实现
    • html里面,一切元素都可以通过document来得到,所以我们的思路就是取消除了checkbox那个td之外的所有td的单击事件,通过unbind来实现
    • 以下展示代码,以下代码是放在onLoadSuccess事件中
         1:  var s= $("#dg1").datagrid('getPanel');
         2:  var rows = s.find('tr.datagrid-row');
         3:  var rows1 = s.find('tr.datagrid-row td[field!=ck]');
         4:  rows1.unbind('click').bind('click',function(e){
         5:          return false;
         6:  });
    • 我使用的easyui版本是1.3.4
  • 分享一下小知识
    • datagrid获取刚选择的行的行号代码
      var s = $('#dg1').datagrid('getSelected');
      var index = $("#dg1").datagrid('getRowIndex',s);
      
    • 如果要获取多行
      var s = [];
      var index = [];
      s = $('#dg1').datagrid('getSelected');
      for(var i=0; i<s.length; i++) {
        index.push($("#dg1").datagrid("getRowIndex",s[i]));
      }
      
    • 在调用onClickRow单击事件之前,总会先调用onSelect和onUnSelect事件
    • 其实可以通过console.log()来调试js程序,而不是用alert,因为console不会打断程序的进行,可以浏览器的控制台进行查看,以下是firefox的控制台
    • 以下是关于easayui中的this
      var s= $("#dg1").datagrid('getPanel');
      var rows = s.find('tr.datagrid-row');
      var checkrows = rows.find('input[type=checkbox]');
      $.each(checkrows,function(index,value){
        console.log(this.checked);
      }
      
      这个程序会输出所有的checkbox的值,即true or false,这里的this返回的是一个input object对象,所以可以直接调用this.property来获取属性值
    • 关于getSelected获取的值,其实getSelected获取的值的样式是{xx="xx",yy="yy"},所以要取某个属性的值,只需要datagrid("getSelected").xx就行了
posted @ 2013-08-20 09:27  popping  阅读(10046)  评论(0编辑  收藏  举报