easyUI自动填充复选框

{

   field: 'op',title: '<input id=\"all\" type=\"checkbox\"onclick="\selectAll()\"  >',width: 30,

                       formatter: function (value, rec, rowIndex) {

                            return"<input type=\"checkbox\" name=\"check\" value=\"" + rec.UserId +"\">";

                       },

                   },

### 实现EasyUI数据表格中复选框全选功能 要在EasyUI的数据表格(`datagrid`)中实现复选框的全选功能,可以通过监听表头复选框的状态变化并动态设置每一行的选择状态来完成。以下是具体的实现方式: #### HTML结构 首先,在页面上创建一个带有复选框列的`datagrid`组件。 ```html <table id="dg" class="easyui-datagrid" style="width:700px;height:auto" data-options=" url:'data.json', method:'get', singleSelect:false, rownumbers:true, pagination:true, toolbar:'#toolbar' "> <thead> <tr> <th field="ck" checkbox="true"></th> <!-- 复选框 --> <th field="name" width="100">名称</th> <th field="age" width="80">年龄</th> </tr> </thead> </table> <div id="toolbar"> <a href="#" class="easyui-linkbutton" iconCls="icon-ok" onclick="selectAll()">全选/取消全选</a> </div> ``` #### JavaScript逻辑 通过编写JavaScript代码控制全选行为。具体来说,可以绑定点击事件到按钮或者表头复选框,并更新所有行的选中状态。 ```javascript function selectAll() { var dg = $('#dg'); // 获取datagrid实例 var rows = dg.datagrid('getRows'); // 获取当前页的所有行 if (rows.length === dg.datagrid('getSelections').length) { // 如果已全部选中,则清空选择 dg.datagrid('clearSelections'); } else { // 否则逐行选中 for (var i = 0; i < rows.length; i++) { dg.datagrid('selectRow', i); } } } // 初始化时绑定表头复选框的变化事件 $('#dg').datagrid({ onLoadSuccess: function () { var headerCheckbox = $('input[type=checkbox][name=fixedhead]', this); // 查找表头复选框 headerCheckbox.on('click', function () { if ($(this).is(':checked')) { // 判断是否被选中 $('#dg').datagrid('checkAll'); // 调用API全选 } else { $('#dg').datagrid('uncheckAll'); // 取消全选 } }); }, onCheckAll: function(rows){ console.log('所有行已被选中:', rows); // 打印日志[^2] }, onUncheckAll: function(){ console.log('所有行已被取消选中'); // 打印日志 } }); ``` 上述代码实现了以下功能: - 当用户点击“全选/取消全选”按钮时,会判断当前是否有任何未选中的行;如果有,则执行全选操作;如果已经全选,则清除所有选择。 - 绑定了表头复选框的点击事件,用于同步整个表格的选中状态。 #### 关键点说明 1. **`singleSelect=false`** 需要确保`datagrid`的`singleSelect`属性设为`false`,以便支持多选模式[^1]。 2. **`onLoadSuccess`回调** 使用此回调初始化表头复选框的行为,因为只有在数据加载完成后才能正确获取DOM节点[^3]。 3. **`checkAll` 和 `uncheckAll` 方法** 这些是`datagrid`内置的方法,分别用来快速选中或取消选中所有的行[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值