- 浏览: 596173 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (268)
- ext基础 (72)
- Java基础 (68)
- jquery (14)
- oracle (21)
- sqlserver (7)
- linux (2)
- webserver (1)
- C/C++ (1)
- sql (9)
- IDE (2)
- java 智能卡 (1)
- mysql (6)
- ibatis (2)
- struts2 (3)
- cvs (1)
- 服务器 (1)
- html (11)
- freemarker (4)
- liferay (2)
- jMS (1)
- iphone (1)
- c# (1)
- Android (11)
- wince (6)
- javascript (4)
- ps (1)
- hibernate (1)
- 其他 (3)
最新评论
-
ilyq:
请问,px.gif 在哪里
斜线表头 -
jisang:
没看懂,第一个org.js和最后的js什么关系,可否发我一份完 ...
用ExtJS 实现动态载入树(Load tree) -
JavaStudyEye:
我去,能否搞个正确点的,,,
<#list ...
freemarker 遍历map 对象 -
PangSir:
大爱,简直是大爱!!困扰这么久以来的问题,虽然知道是CSS的问 ...
ExtJs checkbox radiobox 问题 汇总 -
skynet_java:
有demo嘛!邮箱:think_world@foxmail.c ...
消息推送服务需求 - 服务器开发、客户端开发
这个帖子主要记录我在使用ExtJs 中遇到的一些问题。
1、checkbox 和radiobox在IE下呈纵向显示的问题
添加如下css解决:
2、动态生成checkbox 和radiobox
在项目应用中很多时候checkbox 和radiobox的值是从数据库当中读取并生成的。
首先我们建一个checkboxgroup
在其中我指定了该checkboxgroup的items是由getData()生成
在这里通过Connection从后台获取json并将值赋给checkboxgroup
json的格式如下
3、checkbox 和radiobox在Form中的赋值问题
由于Ext原来的checkbox 和radiobox是无法动态赋值的,通过添加下面代码修复
--------------------------------------------------------------------------------------------
1、我试过把checkbox数据用AJAX从后台取,加载时会报错,所以我把取数据放在jsp页面中,当加载页面时取数据然后生成json格式的checkbox数据,如下:
2、然后在页面在加js方法
3、在extjs中创建CheckboxGroup组件,注意红色字,心须要加的,要不然会出错
这样CheckboxGroup数据就可以从数据库中动态加载过来了
-------------------------------------------------------------------------------- 对于类型是checkboxgroup的数据,数据库中保存数据的格式是value1,value2...valueN,其中1~N的数据有可能不存在,如果选中则存在,最后拼接成一个串。
在Ext中,通过Record对象向FormPanel中的内置对象BasicForm加载数据时,采用的是setValues方法,而setValues第一步要通过Record中定义的name使用findField方法找到表单元素,遗憾的是,继承了Field的checkboxgroup组件并不能正确的通过getName返回自身引用,所以,需要对getName方法进行重写,此外,为了适应我们采用的数据格式,对于该组件的setValue(被setValues调用)和getValue(获取到已加工的数据,此事后话)也要进行重写。故而对于形如:
的checkboxgroup定义,需重写类如下:
2 通过内置对象basicForm的getValues方法可以获取到一个form的完整json数据,但遗憾的事,这里取到的是dom的raw数据,类似emptyText的数据也会被返回,而Field的getValue方法不存在这个问题,所以如果想要返回一个非raw的json集合,可以给formpanel添加如下方法:
这个方法同样适用于上面定义的checkboxgroup,如此就可以把前后台的数据通过json统一起来了
1、checkbox 和radiobox在IE下呈纵向显示的问题
添加如下css解决:
.x-form-check-wrap,.x-form-radio-wrap{padding:3px 0 0 0;line-height:15px;width:150px;} x-form-check-group .x-form-check-wrap,.x-form-radio-group .x-form-radio-wrap{height:15px;} .ext-ie .x-form-check-group .x-form-check-wrap,.ext-ie .x-form-radio-group .x-form-radio-wrap{height:17px;} .commquery-grid-row {color: '#FF0000';!important;} .x-grid-record-red table{color: #FF0000;}
2、动态生成checkbox 和radiobox
在项目应用中很多时候checkbox 和radiobox的值是从数据库当中读取并生成的。
首先我们建一个checkboxgroup
{ id:'id', name:'name', xtype : 'checkboxgroup', fieldLabel : 'test', columns : 3, items:getData() }
在其中我指定了该checkboxgroup的items是由getData()生成
. var itemArray 2. 3. function getData(){ 4. var conn = new Ext.data.Connection(); 5. conn.request({ 6. url: '', 7. success: function(response) { 8. itemArray = Ext.util.JSON.decode(response.responseText); 9. Ext.getCmp('id').items=itemArray; 10. } 11. }); 12. }
在这里通过Connection从后台获取json并将值赋给checkboxgroup
json的格式如下
[{id:'id',boxLabel:'boxLabel',name:'name'},...]
3、checkbox 和radiobox在Form中的赋值问题
由于Ext原来的checkbox 和radiobox是无法动态赋值的,通过添加下面代码修复
1. Ext.override(Ext.form.BasicForm,{ 2. findField : function(id){ 3. var field = this.items.get(id); 4. if(!field){ 5. this.items.each(function(f){ 6. if(f.isXType('radiogroup')||f.isXType('checkboxgroup')){ 7. f.items.each(function(c){ 8. if(c.isFormField && (c.dataIndex == id || c.id == id || c.getName() == id)){ 9. field = c; 10. return false; 11. } 12. }); 13. } 14. 15. if(f.isFormField && (f.dataIndex == id || f.id == id || f.getName() == id)){ 16. field = f; 17. return false; 18. } 19. }); 20. } 21. return field || null; 22. } 23. });
--------------------------------------------------------------------------------------------
1、我试过把checkbox数据用AJAX从后台取,加载时会报错,所以我把取数据放在jsp页面中,当加载页面时取数据然后生成json格式的checkbox数据,如下:
String data="[ {boxLabel:'项目1',name:'item',readOnly:true,inputValue:'1'}, {boxLabel:'项目2',name:'item',readOnly:true,inputValue:'2'}, {boxLabel:'项目3',name:'item',readOnly:true,inputValue:'3'}, {boxLabel:'项目4',name:'item',readOnly:true,inputValue:'4'}, {boxLabel:'项目5',name:'item',readOnly:true,inputValue:'5'}, {boxLabel:'项目6',name:'item',readOnly:true,inputValue:'6'} ] "
2、然后在页面在加js方法
<script type="text/javascript"> function getCombData(){ var data=<%=dataStr %> return data; } </script>
3、在extjs中创建CheckboxGroup组件,注意红色字,心须要加的,要不然会出错
var comData=getCombData(); //取数据 var columNum=3; //设置checkbox的列数,默认是3 if(columNum<3) //如果checkbox个数小于3时,列的长度设成checkbox个数 columNum=comData.length; //体验范围数据 var itemsGroup = new Ext.form.CheckboxGroup({ xtype:'checkboxgroup', fieldLabel:'体验范围', name:'items', width:360, columns:columNum, items:comData });
这样CheckboxGroup数据就可以从数据库中动态加载过来了
-------------------------------------------------------------------------------- 对于类型是checkboxgroup的数据,数据库中保存数据的格式是value1,value2...valueN,其中1~N的数据有可能不存在,如果选中则存在,最后拼接成一个串。
在Ext中,通过Record对象向FormPanel中的内置对象BasicForm加载数据时,采用的是setValues方法,而setValues第一步要通过Record中定义的name使用findField方法找到表单元素,遗憾的是,继承了Field的checkboxgroup组件并不能正确的通过getName返回自身引用,所以,需要对getName方法进行重写,此外,为了适应我们采用的数据格式,对于该组件的setValue(被setValues调用)和getValue(获取到已加工的数据,此事后话)也要进行重写。故而对于形如:
{ xtype: 'checkboxgroup', name: 'biztype', width: 220, columns: 3, fieldLabel: '业务类别', items: [ {boxLabel: '类别1', inputValue: '01'}, {boxLabel: '类别2', inputValue: '02'}, {boxLabel: '类别3', inputValue: '03'}, {boxLabel: '类别4', inputValue: '04'} ] }
的checkboxgroup定义,需重写类如下:
Ext.override(Ext.form.CheckboxGroup,{ //在inputValue中找到定义的内容后,设置到items里的各个checkbox中 setValue : function(value){ this.items.each(function(f){ if(value.indexOf(f.inputValue) != -1){ f.setValue(true); }else{ f.setValue(false); } }); }, //以value1,value2的形式拼接group内的值 getValue : function(){ var re = ""; this.items.each(function(f){ if(f.getValue() == true){ re += f.inputValue + ","; } }); return re.substr(0,re.length - 1); }, //在Field类中定义的getName方法不符合CheckBoxGroup中默认的定义,因此需要重写该方法使其可以被BasicForm找到 getName : function(){ return this.name; } });
2 通过内置对象basicForm的getValues方法可以获取到一个form的完整json数据,但遗憾的事,这里取到的是dom的raw数据,类似emptyText的数据也会被返回,而Field的getValue方法不存在这个问题,所以如果想要返回一个非raw的json集合,可以给formpanel添加如下方法:
getJsonValue:function(){ var param = '{'; this.getForm().items.each(function(f){ var tmp = '"' + f.getName() + '":"' + f.getValue() + '",'; param += tmp; }); param = param.substr(0,param.length - 1) + '}'; return param; }
这个方法同样适用于上面定义的checkboxgroup,如此就可以把前后台的数据通过json统一起来了
发表评论
-
将博客搬至CSDN
2023-02-06 16:57 349https://www.iteye.com/blog/user ... -
Liferay Portal 应用之开发(1)
2012-02-27 14:09 18111.下载安装Eclipse Eclipse ... -
liferay Portal (1) 应用之配置
2012-02-27 13:59 1323Liferay Portal缺省只有一 ... -
ext form
2011-05-18 15:25 1032//grid1定义的grid var record = gr ... -
combox
2011-04-27 10:55 16071.服务器数据作为ComboBox的数据源 实例 首先从服务 ... -
ext grid 单元格
2010-12-29 11:17 1058listeners : { cellcli ... -
combox 默认值
2010-12-20 10:35 3031[ {"abbr":&quo ... -
Ext.DateField 格式
2010-12-17 10:11 1475Ext.DatePicker,该类为我们提供了一个占地面积很广 ... -
extjs的grid控件如何根据值来设置某行的背景颜色
2010-12-17 09:40 8116根据不同的值来设置grid的背景颜色 在viewConfig ... -
动态组件
2010-12-16 17:05 1065Ext.onReady(function() { ... -
js 获取路径
2010-12-13 19:02 1417<br>以下为输出: <br> ... -
矫正对象 信息登记
2010-12-08 14:10 982矫正对象登记 { frame : true ... -
转 ext Demo
2010-12-05 13:17 1501下面这个是主界面的设计 Ext.onReady(funct ... -
下拉框 控制 列是否可读
2010-11-12 08:33 1131Ext EditorGrid单元格控制小记 http://d ... -
extjs formpanel 怎么显示图片
2010-10-02 10:13 3601//可加普通的panel,html属性直接添加html代码 ... -
动态 改变 column样式
2010-09-30 16:35 1197grid.getView().getCell(rowNum , ... -
js 应用
2010-09-29 14:38 1045JS里 面的new Date("xxxx/xx/xx ... -
grid 表头 鼠标事件
2010-09-24 16:04 1942grid.addListener("cellclic ... -
格式化
2010-08-26 00:32 1460//创建edgrid.js Ext.onReady(func ... -
ext (增 ,删,改 ,查,导出excel)
2010-08-26 00:03 1884下面为扩张grid的 代码 ...
相关推荐
在描述中提到的“最难解决的问题”——在修改时为`checkboxgroup`赋值,这是因为EXTJS默认的`setValue`方法可能不会按照期望的方式更新所有复选框的状态。为了解决这个问题,开发者通常需要自定义方法来处理。如示例...
ExtJs4 Checkbox Tree是基于ExtJs 4框架实现的一种特殊树形组件,它在传统的树形结构基础上增加了复选框功能。这种组件常用于需要用户多选树形数据的场景,比如权限设置、目录选择等。下面将详细介绍ExtJs4 Checkbox...
在ExtJS中,CheckboxGroup是一个控件,允许用户以多选框的形式展示一组可选的选项。动态读写Checkboxgroup涉及了对用户交互的响应以及数据的实时更新,这对于创建交互性强、用户友好的界面至关重要。下面将详细讲解...
EXTjs2 的treeNode 带有checkbox,可是API中,关于checkbox的事件就只有一个checkchange事件,所以写个方法传上来。
Extjs 模拟下拉多选checkbox
复选框的添加通常通过配置`checkbox`属性来完成。例如: ```javascript { text: '父节点', checked: false, children: [ { text: '子节点1', checked: false }, { text: '子节点2', checked: true } ] } ``` ...
Extjs3.0 中的CheckboxGroup默认不能动态添加item。虽然它继承了Ext.form.Field,但是却类似于容器。 CheckboxGroup配置中的items处理生成一个对应的panel,该处理过程只有一次,所以很难对CheckboxGroup进行动态...
关于ExtJS内存泄漏问题,一直是ExtJS开发人员困扰的问题,这篇文档很好地解释了什么是内存泄漏,为什么会产生内存泄漏。能够帮助程序员使用ExtJS开发出更高效安全的代码。
标题中的“EXTJS动态树支持checkbox全选”指的是EXTJS中树组件的一个特性,即在树形结构中添加复选框(checkbox)功能,并支持全选和全取消选中操作。这样的功能对于需要用户进行多项选择的场景非常有用,比如文件...
在ExtJS中,Checkbox Tree是一种特殊的树形组件,它允许用户通过复选框选择树结构中的节点。这个"checkbox tree extjs2"主题主要涉及如何在ExtJS 2版本中实现带有复选框功能的树形控件。 在ExtJS 2中,Checkbox ...
通过以上代码,我们就解决了EXTJS中全选后取消选中某一项时,全选框仍保持选中状态的问题。在实际开发中,可能需要根据具体项目结构和需求进行微调,但基本思路是确保事件驱动的状态同步。同时,为了提高代码可维护...
Ext Google Map简易开发框架是一种将流行的JavaScript库ExtJs与Google Maps API相结合的开发方式,用于构建功能丰富的地理信息系统。这个框架允许开发者轻松地在网页上展示地图,管理地图图层,控制图层的可见性,...
在网上下载别人的代码,改进加上CHECKBOX ,但是批量删除做不出来,希望高手完成并分享。
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
标题提到的“解决extjs2.2给tree-panel添加checkbox的add-on”正是为了解决这个问题,提供了一个扩展插件,使得用户可以在Tree Panel的节点上添加复选框。 这个扩展插件包含了以下几个关键文件: 1. **...
ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...
在Extjs框架中,实现基于角色的权限控制是一个常见需求。Extjs主要用于构建富互联网应用(RIA),其组件化的UI构建方式与传统Web开发有较大差异。因此,对于权限的控制也要采用特定的策略来实现。上述文件内容主要...
在EXTJS开发中,我们经常会遇到使用Grid组件展示数据的情况,特别是当数据包含中文字符时,可能会遇到排序问题。EXTJS Grid默认的排序机制对于英文字符处理得较好,但对于中文字符,由于编码和比较规则的不同,可能...
vExtJs参考资料汇总ExtJs参考资料汇总ExtJs参考资料汇总ExtJs参考资料汇总