给ComboBox组件配置listConfig

下拉框代码:

var gyslxcm = Ext.create('Ext.form.field.ComboBox',{
id : 'gyslxcm',
store : gyslxstore,
multiSelect : true,
editable : false,
xtype : 'textfield',
allowBlank : true,
displayField : 'mingc',
valueField : 'mingc',
queryMode: 'local',
listConfig: {
itemTpl: '<tpl for="."><div class="x-combo-list-item" onClick=""><span><input type="checkbox" id="cb{[values.id]}" name="cb{[values.id]}" value="{[values.id]}" />{mingc}</span></div></tpl>',
listeners: {
itemclick:function(view, record, item, index, e, eOpts ){
var checkboxs = item.getElementsByTagName("input");
var checkbox = checkboxs[0];
if(checkbox != null) {
checkbox.checked = !view.isSelected(item);
}
},
beforeshow: function(combo, eOpts){
alert('beforeshow');
updateCheckboxState(combo, false, null);
},
beforeselect: function(obj, record, eOpts){
alert('beforeselect');
updateCheckboxState(obj.view, true, record);
}
}
}
});

更新复选框函数

function updateCheckboxState(combo, isSelectEvent, record){
if(combo != null){
var contents = combo.all;
if(contents != null){
var elements = contents.elements;
if(elements.length > 0){
for(var i=0; i<elements.length; i++){
var element = elements[i];
var isSelect = combo.isSelected(element);
var checkboxs = element.getElementsByTagName('input');
if(checkboxs.length > 0){
for(var j=0; j<checkboxs.length; j++){
var checkbox = checkboxs[j];
if(checkbox != null){
if(!isSelectEvent){//是show事件
checkbox.checked = isSelect;
} else {//是select事件
if(record != null && record.data.id == checkbox.value){
checkbox.checked = true;
}
}
}
}
}
}
}
}
}
}

我的下拉框是放在grid里面使用的,首次加载时执行完beforeshow事件后还会执行beforeselect事件,这样就会把之前复选框选中状态刷掉,所以又在beforeselect事件里面加了一段代码用来表示当执行beforeselect事件时更新复选框状态,这里执行beforeselect事件时只有当下拉框项是被选中的状态才会执行,否则不会执行。当再次点击下拉框时也不会在执行beforeselect事件,只有首次加载时才会执行。

extjs下拉框添加复选框的更多相关文章

  1. selemiun 下拉菜单、复选框、弹框定位识别

    一.下拉菜单识别 对下拉框的操作,主要是通过Select 类里面的方法来实现的,所以需要new 一个Select 对象(org.openqa.selenium.support.ui.Select)来进 ...

  2. html基本标签表单实现交互原理,单选框,复选框,下拉框介绍

    表单是什么?表单是前端和服务器做交互的一种机制,表单收集用户输入信息,之后发送或者提交给服务器.用户在输入的信息称之为内容,内容的文本分为普通和密码型,用户通过单选框.复选框.下拉框(也就是下拉菜单) ...

  3. vue.js实现单选框、复选框和下拉框

    Vue.js可以很方便的实现数据双向绑定,所以在处理表单,人机交互方面具有很大的优势.下边以单选框.复选框和下拉框为例介绍他们在HTML和Vue.js中的具体实现方式. 一.单选框   在传统的HTM ...

  4. Selenium3自动化测试【28】单选框、复选框、下拉选择框

    Html页面中的单选按钮.复选框.下拉框均可通过WebDriver实现操做.本节结合案例一起来看看WebDriver如何操做这些控件. 同步视频知识与系列知识内容,可关注:[公众号]:柒哥测试:[WX ...

  5. Qt之QHeaderView添加复选框

    简述 前面分享了QTableView中如何添加复选框.本节主要介绍QTableView中的表头-QHeaderView添加复选框的功能,下面以水平表头为例,垂直表头类似! 简述 效果 QHeaderV ...

  6. 组合框里添加复选框的方法(使用勾选的假象,用图片代替而已,并非QT原生支持)

    组合框可以看作是列表框和文本框的组合,因其占据的空间少,使用操作方便,常被界面设计人员用于界面开发设计中,在有限个输入的条件下,组合框常用来代替文本框,这样从用户使用角度来看,更趋人性化,所见即所得. ...

  7. ajax动态添加复选框

    function getLands() { $.ajax({ url:"httpserver.do?doPost&userQygs="+$("#userQygs& ...

  8. QListWidget的QComboBox下拉列表添加复选框及消息处理

    要在QComboBox下拉列表项中添加复选框,并进行消息处理,在网上搜索了很久没有找到太多有用的信息和实际的例子,但从中还是找到了一些提示性的资料,根据这些简短的介绍,最终实现了这个功能. QComb ...

  9. 雷林鹏分享:jQuery EasyUI 数据网格 - 添加复选框

    jQuery EasyUI 数据网格 - 添加复选框 本实例演示如何放置一个复选框列到数据网格(DataGrid).通过复选框,用户将可以选择 选中/取消选中 网格行数据. 为了添加一个复选框列,我们 ...

随机推荐

  1. Unity Flow distort of screen

    Shader "ScreenWater" {Properties { _MainTex ("Base (RGB)", 2D) = "white&quo ...

  2. su认证失败??? su root 输入命令后显示 "su:Authentication failure"

    原因:安装的时候没有给root设置密码 解决办法如下:

  3. UIAlertView的使用

    UIAlertView是用于弹出一个对话框进行选择或者消息提示 构造函数:     UIAlertView * alert = [[UIAlertViewalloc] initWithTitle:@& ...

  4. UVA 10106 (13.08.02)

     Product  The Problem The problem is to multiply two integers X, Y. (0<=X,Y<10250) The Input T ...

  5. GDB技巧整理

    https://blog.atime.me/note/gdb-tricks.html 整理常用的gdb技巧. 常用命令 常用的gdb命令... 启动gdb 直接运行 gdb --args prog a ...

  6. Form实现无刷新上传文件并返回自定义值

    今天开发过程中遇到了这样一个问题:需要将Excel上传至服务器进行解析,但是在文档不合适的情况下希望可以不刷新页面提示用户文档不合适.冥思苦想了半天,在网上找了不少资料最终试验成功,在此分享下处理方法 ...

  7. iOS UIScrollView 你可能不知道的奇技淫巧

    iOS 的 UIScrollView 可以说是十分强大,巧妙地运用它可以得到一些意想不到的效果.本文将举几个 ScrollView 不常见运用的例子. 自带信息应用 这个界面既可以上下卷动,也可以左右 ...

  8. 设置Eclipse中文API提示信息

    准备工作:下载中文API到本机:http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html_ ...

  9. PHP利用超级全局变量$_GET来接收表单数据。

    我们在linux上用 touch php_get.html php_get.php创建两个文件. php_get.html文件的代码如下: <!doctype html> <html ...

  10. hadoop2集群中的datanode启动以后自动关闭的问题

    今天在启动前几天搭建成功的hadoop集群的时候,出现了datanode启动之后自动关闭的情况,经过查询之后发现问题产生的原因是:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式 ...