`
paladin1988
  • 浏览: 329466 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转载】ExtJS根据后台数据动态创建CheckboxGroup的方法

 
阅读更多

 

转载:http://www.itzhai.com/extjs-based-on-background-data-of-dynamically-created-checkboxgroup-method.html

作者:arthinking

 

 

 

1、准备知识:

 

Ext的Ajax请求的编写

 

Ext.Ajax.request({
    url: '',
    callback: function(options,success,response){
        if(success = true){
            response.responseText; //可由后台获取JSON格式数据进行解析
        }else{
        }
    }
});
 

 

JSON格式数据的组装和读取
参考:Javascript解析由服务器返回的JSON格式数据


CheckboxGroup的基本编写方法(checkbox的构造和拼接)
{boxLabel:'部门查看',name:'department-view',id:'department-view',inputValue:'department-view'}


将字符串转换为Javascript语句的函数:eval()


Ext.form.FormPanel的add()方法: 添加组件


Ext.form.FormPanel的doLayout()方法: 重新计算容器的布局尺寸。当有新组件加入到已渲染容器或改变子组件的大小/位置之后,就需要执行此函数。

 

 

 

 

2、备用工具:

 

Javascript手册,ExtJS API文档

 

 

 

3、提示:

 

ExtJS中的CheckboxGroup(和RadioGroup)默认不能动态添加item。虽然它继承了Ext.form.Field,但是却类似于容器。

在CheckboxGroup构造是,它会将配置中的items等配置项处理生成一个对应的panel,该处理过程只有一次,所以很难对CheckboxGroup进行动态修改。

如果需要根据后台数据动态创建的话,最好试着创建整个CheckboxGroup,而不是动态添加item。

 

 


4、下面是一个根据后台数据动态创建CheckboxGroup的例子:

 

Ext.Ajax.request({
	url: 'control/privilege/EmployeeManage-privilegeGroupSetUI.action?username='+ username,
	callback: function(options,success,response){
		if(success = true){
        	var obj = eval( "(" + response.responseText + ")" );
        	//拼接checkbox子项目
        	var checkboxitems="";
        	for(var i = 0;i<obj.groups.length;i++){
        		if(checkboxitems!="")
        			checkboxitems+=",";
        		else
        			checkboxitems+="[";
                var groupid = obj.groups[i].groupid;
//	                alert(obj.groups[i].name);
    			var checkboxSingleItem = "{boxLabel:'"+obj.groups[i].groupname+"',name:'"+obj.groups[i].groupname+"',id:'"+obj.groups[i].groupid+"',inputValue:'"+obj.groups[i].groupid+"'";

    			var usergroup=obj.usergroups;
    			for(var j=0;j<usergroup.length;j++){
//        				alert();
	                if(usergroup[j].groupid == groupid){
	                	checkboxSingleItem += ",checked:'true'";
	                }
    			}
    			checkboxSingleItem+="}";
//                	alert(checkboxSingleItem);
    			checkboxitems+=checkboxSingleItem;
            }
        	checkboxitems+="]";
//	        	alert(checkboxitems);
        	var itemsGroup = new Ext.form.CheckboxGroup({
    			fieldLabel: '选择权限',
    			name:'user_add_checkboxgroup',
    			width:380,
    			id:'user_add_checkboxgroup',
    		    columns: 1,
        	    name:'items',
        	    width:360,
        	    columns:1,
        	    items:eval(checkboxitems)
        	});

        	addFormPanel.add(itemsGroup);
        	addFormPanel.doLayout();

		} else {
			Ext.MessageBox.alert('信息提示',"加载权限失败");
		}
	}
});
 

 

分享到:
评论

相关推荐

    ExtJS实现动态读写Checkboxgroup

    动态读写Checkboxgroup涉及了对用户交互的响应以及数据的实时更新,这对于创建交互性强、用户友好的界面至关重要。下面将详细讲解如何实现这一功能。 首先,我们需要了解CheckboxGroup的基本结构。CheckboxGroup由...

    extjs动态生成表格,前台+后台

    动态生成表格是ExtJS中的一个重要功能,它允许开发者根据需求灵活地构造表格结构和数据。 首先,我们需要了解ExtJS中的核心组件之一——GridPanel。GridPanel是一个显示二维数据的组件,通常用于展示大量结构化的...

    Extjs panel里添加checkboxgrop后台动态获取数据

    Extjs checkboxgrop动态获取后台数据,并默认为全选状态

    Extjs3.0 checkboxGroup 动态添加item实现思路

    如需要数据动态创建,试着创建整个CheckboxGroup,而不是动态添加item。 代码如下: var unitColumns=[]; for(var i = 0;i &lt; records.length;i++){ unitColumns.push({ boxLabel: records[i].data.A11, n

    EXTJS checkbox赋值

    在EXTJS中,`checkboxgroup` 是一个用于创建一组复选框的组件,通常用于让用户在多个选项中进行多选。 在EXTJS中,`checkboxgroup` 的配置项包括但不限于: 1. `xtype`: 这个属性定义了组件的类型,对于`checkbox...

    extjs通用后台管理界面

    开发者可以通过研究这些文件,了解如何使用ExtJS创建复杂的UI组件,如何组织代码结构,以及如何与服务器进行数据交互。同时,示例代码可能还包括了具体的API调用、事件处理、布局配置等内容,这些都是学习和掌握...

    extjs与后台数据交换的一些测试类

    在与后台数据交换中,ExtJS扮演着关键角色,它通过Ajax技术与服务器进行通信,实现了异步的数据加载、更新和保存。在你提供的"extjs与后台数据交换的一些测试类"中,我们可以深入探讨以下几个核心知识点: 1. **...

    extjs4.0.7后台管理框架

    EXTJS4.0.7提供了TreePanel组件,允许开发者创建可扩展、可搜索、可拖放的树形结构,这在后台管理系统中常用于展现层级关系的数据,如部门结构、文件目录等。通过Ajax或Store的数据绑定,可以实现树节点的动态加载和...

    extjs动态表格实例(封装GRID,从STRUTS2读取后台数据 )

    在动态表格中,这意味着表格的列和数据可以随着后台数据的变化而变化,提供灵活的数据展现方式。 封装Grid是为了提高代码的可重用性和可维护性。通过创建一个自定义的Grid组件,我们可以将通用的功能(如加载数据、...

    extjs网站后台管理系统

    "ExtJS 网站后台管理系统"是一款基于ExtJS框架构建的高效、功能丰富的网站管理平台,主要用于实现用户权限管理、文章编辑与发布、页面静态化以及集成lucene搜索引擎等功能。这一系统旨在提供一站式的网站信息管理和...

    ExtJs4 Checkbox tree

    ExtJs4 Checkbox Tree是基于ExtJs 4框架实现的一种特殊树形组件,它在传统的树形结构基础上增加了复选框功能。这种组件常用于需要用户多选树形数据的场景,比如权限设置、目录选择等。下面将详细介绍ExtJs4 Checkbox...

    ExtJS项目后台模板

    已经整理,能直接看效果的哦,用着不错,要使用的拿走吧

    Extjs和后台数据库交互的程序,增删改查

    在“Extjs和后台数据库交互的程序,增删改查”项目中,我们将探讨如何利用ExtJS与后台数据库进行数据的添加、删除、修改和查询操作。 1. **ExtJS的数据模型(Model)** 在ExtJS中,数据模型定义了对象的结构,包括...

    基于ExtJS的通用后台管理系统

    在这个基于ExtJS的通用后台管理系统中,我们可以看到它被用来创建一个高效的管理界面,可能包含了数据的增删查改、图表分析、用户权限管理等多种功能。 首先,让我们了解一下ExtJS在后台管理系统中的应用。ExtJS...

    Extjs 与后台交互的实例

    本实例主要探讨了如何利用ExtJS与后台的Java Servlet进行数据的增删改查操作,涉及的技术栈包括ExtJS、Servlet和Java。下面我们将深入讨论这些知识点。 首先,ExtJS是一个强大的JavaScript库,用于构建富客户端应用...

    Extjs 通用后台模板| 经典 Tree+Tab+Grid

    综上所述,这个通用后台模板提供了丰富的UI元素和功能,旨在简化ExtJS的开发流程,让开发者能够更专注于业务逻辑和数据处理,而不是基础界面的搭建。通过深入理解和定制这个模板,你可以构建出满足特定业务需求的...

    EXTJS AJAX方式发送数据给后台服务器.rar

    本教程主要讲解如何使用EXTJS的AJAX方法向后台服务器发送数据,这对于实现动态交互和数据同步至关重要。 一、EXTJS AJAX基础 EXTJS中的AJAX调用通过Ext.Ajax对象来实现,它提供了一系列的方法,如`request`、`post...

    EXTJS动态树支持checkbox 全选

    总结来说,EXTJS动态树支持checkbox全选是一个结合了EXTJS TreePanel组件、数据模型、事件处理和异步加载技术的功能实现,旨在提供用户友好的多选操作。通过这个功能,开发者可以构建出更加交互性强、功能丰富的Web...

    基于ExtJS5的后台管理系统案例 - 源码

    在ExtJS5中,可以使用Grid Panel配合Editor Grid插件实现数据的编辑,使用Window或Modal Form进行新建和修改操作,而使用Store与Proxy连接后台服务进行数据的删除。 4. **表格组件(Grid)** Grid是ExtJS5中用于...

Global site tag (gtag.js) - Google Analytics