ExtJs 动态RadioGroup的子项 [ Ext | RadioGroup | items ]

简介:

正文
1.  实现代码
 

// Ext.form.RadioGroup扩展
Ext.override(Ext.form.RadioGroup, {
    getItems:
function (){
        
return   this .items;
    },
    setItems:
function (data){
        
this .items  =  data;
    }
});

function  RadioGroup(_name,fLable,_items,_columns)
{
    
// / <summary>
     // /
     // / 作 者:农民伯伯
     // / 邮 箱:over140@gmail.com
     // / 博 客:http://over140.cnblogs.com/
     // / 时 间:2009-7-23
     // / 描 述:Ext.form.RadioGroup封装
     //
     // / </summary>
     // / <param name="_name">name</param>
     // / <param name="fLable">fieldLabel</param>
     // / <param name="_items">items</param>
     // / <param name="_columns">columns</param>
     // / <returns>Ext.form.DateField</returns>
     var  rg  =   new  Ext.form.RadioGroup({
        name:_name,
        fieldLabel:fLable
    });
    
    
if (_columns != null )
        rg.columns 
=  _columns;
    //动态绑定        
    
var  items  =   new  Array();
    
if (_items  != null ){
        
for ( var  i  =   0  ;i < _items.length; i ++ )
        {
            items[i] 
=  {};
            items[i].name 
=  _name;
            items[i].boxLabel 
=  _items[i][ 0 ];
            items[i].inputValue 
=  _items[i][ 1 ];
            
if (_items[i].length  >   2 )
                items[i].checked 
=  _items[i][ 2 ];
        }
    }
    
    rg.setItems(items);
    
    
return  rg;
}

    代码说明:
a).  首先需要将RadioGroup的items属性通过拓展暴露出来。
b).  需要注意动态绑定子项部分的代码。

2.  使用代码
 

             var  pnlZB  =   new  Ext.FormPanel({
                layout: 
' form ' ,
                frame:
true ,
                buttonAlign:
' center ' ,
                bodyStyle:
' padding:20px ' ,
                defaults:{
                    width:
200 ,
                    allowBlank:
false ,
                    blankText:
' 该项不能为空! '
                },
                labelAlign:
' right ' ,
                labelWidth:
150
                items:[
                    
new  RadioGroup( ' Gender ' , ' 性别 ' ,[[ ' ' , ' ' , true ],[ ' ' , ' ' ]])
                ],
                buttons:[{
                    text:
" 提  交 " ,
                    handler:
function (){
                            alert(Ext.encode(pnlZB.form.getValues()));
                    }
                },{
                    text:
" 取  消 " ,
                    handler:
function (){
                        pnlZB.form.reset();
                    }
                }]
            });

  代码说明:
a).  如果要取选择的值,可以直接RadioGroup对象的实例.getValue().inputValue就能取到了。

补充
      1.      2009-7-28      如果出现js错误,比如setItems为空,请将Ext.override(Ext.form.RadioGroup...部分代码放入函数RadioGroup内,放在setItems前面就行;如果还报prototype错误,请将adapter\prototype\ext-prototype-adapter.js也加入工程,目录同样。


结束语
Ext很好,但动辄上百行JS代码,所以有空就做点这方面的简化工作,能节省不少后期工作量已经重复设置属性出错的几率。



本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/586551,如需转载请自行联系原作者

相关文章
lda模型和bert模型的文本主题情感分类实战
lda模型和bert模型的文本主题情感分类实战
454 0
|
机器学习/深度学习 人工智能 并行计算
"震撼!CLIP模型:OpenAI的跨模态奇迹,让图像与文字共舞,解锁AI理解新纪元!"
【10月更文挑战第14天】CLIP是由OpenAI在2021年推出的一种图像和文本联合表示学习模型,通过对比学习方法预训练,能有效理解图像与文本的关系。该模型由图像编码器和文本编码器组成,分别处理图像和文本数据,通过共享向量空间实现信息融合。CLIP利用大规模图像-文本对数据集进行训练,能够实现zero-shot图像分类、文本-图像检索等多种任务,展现出强大的跨模态理解能力。
1314 2
|
传感器 供应链 监控
数字化应用场景
数字化应用场景
688 0
|
Java Maven 微服务
搭建springcloud项目——简单明了(一)
本文讲解搭建springcloud项目的方法:操作和eureka-user
7488 1
搭建springcloud项目——简单明了(一)
|
12月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
473 73
|
测试技术 API Windows
Windows 如何使用 cURL 命令?快速上手
在工作流程中,为了快速验证 API 接口有效性,团队成员经常转向直接执行 cURL 命令的方法。这种做法不仅节省时间,而且促进了团队效率的提升。对于使用 Windows 系统的用户来说,这里有一套详细的操作指南来执行 cURL 命令。
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之如何实现在线上加索引,并且不会锁表
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
数据采集 XML 数据挖掘
Python中利用正则表达式进行数据清洗的实用指南打造未来数字生活:移动应用开发与系统创新
【7月更文挑战第31天】本文将深入探讨如何运用Python中的正则表达式库re,实现对数据集的有效清洗。文章将通过具体实例展示正则表达式在字符串处理、模式匹配和数据转换中的应用,帮助读者掌握使用正则表达式解决实际问题的能力。
349 0
|
算法 Python
Python高级数据结构——并查集(Disjoint Set)
Python高级数据结构——并查集(Disjoint Set)
609 2