EasyUI DataGrid实现单选且选择后可取消选择详解编程语言

要实现的效果为只允许单选,且选择后再选择该行则是取消选择

在DataGrid中控制复选框的三个属性为:

名称 描述 默认值
singleSelect 设置为true将只允许选择一行。 false
checkOnSelect 如果为true,该复选框被选中/取消选中,当用户点击某一行上。如果为false,该复选框仅检查/取消选中,当用户点击完全的复选框。 true
selectOnCheck 如果设置为true,单击一个复选框,将始终选择行。如果为false,不会选择行选中该复选框。 true

以上三个参数无论如何组合都实现不了该效果,可使用如下方法:

1、对DataGrid进行扩展

/** 
 * easyui的扩展 
 * 只允许选择一行,且选择后可取消选择 
 */ 
$.extend($.fn.datagrid.methods, {
    
    selectStyle : function(jq, fields) {
    
		var grid = fields; 
		$("input[name=ck]").click(function () {
    
	        var ischecked = $(this).is(":checked"); 
	        $("input:checkbox[name=ck]:checked").attr("checked", false); 
	        $('#'+grid+'').datagrid('clearSelections'); 
	        $('#'+grid+'').datagrid("unselectAll"); 
	        if (ischecked) {
    
	            $(this).attr("checked", true); 
	        } else {
    
	            $(this).attr("checked", false); 
	        } 
	    }); 
    } 
}); 
 
$.extend($.fn.datagrid.methods, {
    
    onClickStyle : function(jq, fields) {
    
		var grid = fields[0]; 
		var rowIndex = fields[1]; 
		$('#'+grid+'').datagrid("unselectAll");//取消选中当前所有行 
		$('#'+grid+'').datagrid("selectRow", rowIndex);//选中当前点击的行 
    } 
}); 

2、参数设置

singleSelect:false, 
checkOnSelect:true, 
selectOnCheck:true, 

3、DataGrid加载完成后调用函数

onClickRow: function (rowIndex, rowData) {
    
	$(this).datagrid("onClickStyle", ["grid",rowIndex]); 
}, 
onLoadSuccess: function (data) {
    
	$(this).datagrid("selectStyle", "grid"); 
} 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/19194.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论