Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案

Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案,ext 的CheckboxSelectionModel在后台默认选中之后,前台就不允许编辑的bug是存在的,因为CheckboxSelectionModel没有Disabled="true"的设置,只能想办法弥补,毕竟不能直接给GridPanel设置Disabled="true"这样的话,整个GridPanel都成灰色的了,现在不能满足用户的需求,不科学的界面如图:

那么怎么样处理这个问题呢。

思路:选中之前进行判断,假如为鼠标点击不进行任何选中操作,但是如果后台默认选中,第一次点击的时候不会触发前台js事件,这就成了一个问题,所有要想办法,让后台数据设置完之后前台在绑定一次全部默认。但问题有来了,经过测试,如果想要第一次触发js拦截事件,必须前台手动点击触发才可生效(奇葩的Ext)。那就在GridPanel点击之前,去实现吧。代码如下(后台设置开关按钮还是没有任何问题的):

function myBeforeRowSelect(SelectionModel, rowIndex, keepExisting, record) {
    if (event != null && event.keyCode == 0) {
        return false;
    }
}
function onSelectAll() {
    var model = Ext.getCmp("GridPanel1").getSelectionModel();
    model.selectAll();
}
<Listeners>
    <CellMouseDown Fn="onSelectAll"  />
</Listeners>

<SelectionModel>
  <ext:CheckboxSelectionModel ID="CheckboxSelectionModel1" runat="server" HideCheckAll="true">
       <Listeners>
            <BeforeRowSelect Fn="myBeforeRowSelect" />
       </Listeners>
  </ext:CheckboxSelectionModel>
</SelectionModel>

后台设置CheckboxSelectionModel方法:

// 选中
RowSelectionModel sm = Grid.SelectionModel.Primary as RowSelectionModel;
sm.SelectedRows.Add(new SelectedRow(第几行));
sm.UpdateSelection();

// 非选中
RowSelectionModel sm = Grid.SelectionModel.Primary as RowSelectionModel;
sm.DeselectRow(第几行);

over~

时间: 2024-11-05 21:25:48

Ext1.X的CheckboxSelectionModel默认全选之后不允许编辑的BUG解决方案的相关文章

jQuery 全选与反选时出现的bug!

今天在写项目,使用jQuery1.10.2 发现一个小小的bug, 在设置checked属性时,前两次反选的时候是正常的,后面均不正确,通过调试, 准确的说应该是只有第一次是正确的,在第二次单击时,事件快完成的时候的运行的流程有点奇怪.所以自己感觉这么 成熟的框架不应该出现这个问题,于是又将1.11.1版本下载下来,也是jQuery1的最新版本测试,同样末果,问题依 然存在,使用标准的document.getElementById, 直接设置值是没有问题的. 我本人根据测试,应该是jQuery的

CMDB项目CURD组件之全选取消反选和编辑模式

$(':checked') 选中的所有元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.css

SSRS参数不能默认全选的解决方法

解决方法选自<SQL Server 2008 R2 Reporting Services 报表服务>一书,亲测有效. 注意:参数默认值如果是字符串需要类型转换 =CStr("ALL")

Edit Control响应全选(Ctrl+A)

MFC中的Edit控件用于输入数据,当输入的数据为大段数字的时候,全选功能就显得非常重要了,可偏偏在MFC中Edit控件就不 支持全选.Ctrl+A不行,双击也不行. Ctrl+C和Ctrl+V都是默认支持的.因此为了使用方便,我们仅仅能自己让Edit去支持Ctrl+A全选 功能了. 实现的方式也比較简单,自己处理消息就是! Ctrl+A是一个组合消息,在检測到A或者a按键按下的时候.推断Ctrl键的状态,假设Ctrl键有效则说明用户按下了Ctrl+A按键,这时候我们将Edit中内容设置为全选就

C#文本框中默认是不允许使用全选的

C#文本框中默认是不允许使用全选的.可以通过以下事件完成: private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.A) textBox1.SelectAll(); } 这样,在文本框中输入ctrl+A时即可完成全选. 来自为知笔记(Wiz)

bootstrap iCheck插件 全选和获取value值的解决方法

在使用jQuery iCheck 插件的时候遇到了一个问题,就是当我们使用普通的js全选功能无效了. $("#checkall").click(     function(){         if(this.checked){             $("input[name='checkname']").each(function(){this.checked=true;});         }else{             $("input[

jQuery实现复选框的全选与全不选

对于复选框的选中checked属性,实在是无力吐槽. 从上图可以看出,当复选框不设置checked属性时,默认没有被选中:其它三种情况,设置checked属性但不设置属性值即置空,或者将checked属性值设为true/false,都是默认被选中. 我们来看看W3C上的介绍: 结合开头的实例,我们可以不给复选框设置checked属性,利用js设置复选框的checked属性值,如下: 由上不难看出,3默认被选中 基于此,全选与全不选就很好做了,此处只贴从最近的一个项目中截取的部分代码,亲测有效:

easyui反选全选和全不选代码以及方法的使用

首先要说明的是,onclick="javascript:这里只能写JS的代码,不能写个方法名.",其次就是onclick=“这里写的方法名必须存在于本页面的行内JS,如果是引入的JS文件中的方法他不会识别,会告诉你没有找到XX方法” 接下来是easyui的方法: //全选 $("#mAllSelect").click(function () { $("#dgShowData").datagrid("checkAll"); })

jQuery实现复选框全选/全部取消/反选/获得选择的值

本地单文件上传脚本,命名uf 这是在本机上做的测试,利用bpcs_uploader脚本实现,只是进行简单的封装,自动完善云端文件路径. 技术要点:使用dirname获取文件所在目录,使用pwd获取文件完整路径,并作为云端文件路径. #!/bin/bash cur_dir=$(cd "$(dirname "$1")"; pwd) name=$(basename "$1") /home/grm/bin/bpcs_uploader/bpcs_uploa