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就行了
- datagrid获取刚选择的行的行号代码