给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. java基础(九)面向对象(四)

    这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...

  2. Git error: hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused b

    hint: Updates were rejected because the remote contains work that you dohint: not have locally. This ...

  3. HDOJ1002题A + B Problem II,2个大数相加

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...

  4. java多线程编程(1) 线程的基本知识

    在前面研究过多线程与进程的区别. 这里在稍微总结一下: 进程:程序动态的一次执行过程. 线程:可以只是程序员的一部分的执行过程 每个进程有多个线程组成,在java程序中,至少两个线程一个是垃圾回收线程 ...

  5. lightoj 1027 简单概率dp

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1027 #include<cstdio> #include<cstri ...

  6. mysql登录时,ERROR 1045 (28000): 错误解决办法

    错误问题的描述: ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ERROR 10 ...

  7. Tomcat8 配置NIO

    conf/server.xml 打开:<Executor name="tomcatThreadPool" namePrefix="catalina-exec-&qu ...

  8. 415. Add Strings

    没什么限定的话,先翻转,在一位一位加,记得进位就行了.. public class Solution { public String addStrings(String num1, String nu ...

  9. DELPHI TreeView 文件目录树和 设置节点图标 完整

        DELPHI TreeView 文件目录树和 设置节点图标   下载地址 http://download.csdn.net/detail/teststudio/6448293     需要制作 ...

  10. [RxJS] Combination operator: combineLatest

    While merge is an OR-style combination operator, combineLatest is an AND-style combination operator. ...