`
SunnyYoona
  • 浏览: 386620 次
社区版块
存档分类
最新评论

ExtJs学习笔记(1)ItemSelector (用户关系左右选择组件)

 
阅读更多


这是本地读取数据。

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
        <title>Tree</title>
        <link rel="stylesheet" type="text/css" href="../../../resources/css/ext-all.css" />
		<link rel="stylesheet" type="text/css" href="MultiSelect.css" />
        <script type="text/javascript" src="../../../adapter/ext/ext-base.js"></script>
        <script type="text/javascript" src="../../../ext-all.js"></script>
        <script type="text/javascript" src="MultiSelect.js"></script>
		<script type="text/javascript" src="ItemSelector.js"></script>
        <script type="text/javascript">
			Ext.onReady(function()
			{
				var leftStore = new Ext.data.ArrayStore(
				{
					data: [
						['1', '卡卡'], 
						['2', '罗纳尔多'], 
						['3', '梅西'], 
						['4', '罗纳尔迪尼奥'], 
						['5', '阿奎罗'],
						['6', '本泽马'], 
						['7', '哈维'], 
						['8', '比利亚'], 
						['10', '小豌豆'],
						['11', '特略'],
						['12', '法尔考'],
						['13', '苏亚雷斯']
					],
					fields: ['id','name'],
					sortInfo: {
						field: 'name',
						direction: 'ASC'
					}
				});
				var rightStore = new Ext.data.ArrayStore(
				{
					data: [
						['1', 'C罗'], 
						['2', '内马尔'], 
						['3', '法布雷加斯']
					],
					fields: ['id','name'],
					sortInfo: {
						field: 'name',
						direction: 'ASC'
					}
				});
				var userForm = new Ext.form.FormPanel(
				{
					items : [
					{
						xtype : 'itemselector',
						id:'userSelector',
						anchor : '100%',
						name : 'userSelector',
						hideLabel : true,
						renderTo:'ItemSelector',
						style : 'margin-top:10px;margin-left:10px;margin-right:10px;',
						imagePath : 'images/',
						multiselects : [
							{
								id:'left',
								width : 150,
								height : 250,
								legend :'待选人员',
								store :leftStore,
								valueField : 'id',
								displayField : 'name'
							},
							{
								id:'right',
								width : 150,
								height : 250,
								legend : '已选人员',
								store:rightStore,
								valueField : 'id',
								displayField : 'name',
								tbar : [
								{
									text : '清除',
									handler : function() {
										userForm.getForm().findField('userSelector').reset();
									}
								}]
							}
						],
					}]
				});//form
			}
		);
        </script>
    </head>
    <body>
        <div id="ItemSelector" style="height:300px;"></div>
    </body>
</html>







在使用ItemSelector时需要引用3个文件:


按照以上代码就可以使用读取本地数据的用户选择组件了。


如果想读取后台数据,还需要稍微改动一下store。

//待选人员数据
	var leftStore = new Ext.data.Store(
	{  
		id:'leftStore',  
		proxy : new Ext.data.HttpProxy({url:"/Web/Manage/DeskTop/JSON/CommonFile/UserSelector.aspx"}),  
		reader: new Ext.data.JsonReader(
			{  
				totalProperty:'totalCount',  
				root:'root'
			},  
			[  
				{name:'id',type:'int'},  
				{name:'name',type:'string'}  
            ]  
		)  
    });  
    leftStore.load(); 

url中的地址就是用来读取后台数据的。


UserSelector.aspx

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;

public partial class Manage_DeskTop_JSON_CommonFile_UserSelector : System.Web.UI.Page
{
    private int count = 0;
    private SQL sqlManage = null;
    private StringBuilder sb = new StringBuilder();
    private StringBuilder jsonBody = new StringBuilder();
    private string sql = null;
    private SqlDataReader sr = null;
    private bool IsSuccess;
    private string error = null;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            sqlManage = new SQL();
            sql = "select Id,UserName from UserInfo";
            sr = sqlManage.getDataReader(sql);
            jsonBody.Append("root:[");
            while (sr.Read())
            {
                    if (count != 0)
                    {
                        jsonBody.Append(",");
                    }
                    jsonBody.Append("{");
                    jsonBody.AppendFormat("id:'{0}',name:'{1}'", sr[0].ToString(), sr[1].ToString());
                    jsonBody.Append("}");
                    count++;
            }
            jsonBody.Append("]");
            this.IsSuccess = true;
        }
        catch (Exception exp)
        {
            this.IsSuccess = false;
            error = exp.Message;
        }

        if (this.IsSuccess == true)
        {
            sb.Append("{");
            sb.AppendFormat("totalCount:{0}", count);
            sb.Append(",");
            sb.Append(jsonBody);
            sb.Append("}");
            Response.Write(sb);
        }
        else
        {
            Response.Write("{success:false,error:'" + error + "'}");
        }
    }
}





分享到:
评论

相关推荐

    ExtJS学习笔记.doc

    ExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.docExtJS学习笔记.doc

    extjs4.2的itemselector

    这个组件通常用于实现用户界面中的双列表选择功能,例如在创建一对多或一对一关系时,让用户能从两边的列表中分别选择元素。然而,根据描述,原生的 `itemselector` 在 4.2 版本中可能存在一些问题,特别是它只有 `...

    extJs 2.1学习笔记

    24. extJs 2.0学习笔记(组件总论篇) 66 25. extJs 2.0学习笔记(Ext.Element API总结) 69 26. extJs 2.0学习笔记(Element.js篇) 73 27. extJs 2.0学习笔记(DomHelper.js篇) 76 28. extJs 2.0学习笔记(ext.js篇) 77

    Extjs4.0学习笔记

    xtjs4,创建Ext组件有了新的方式,就是Ext.create(....),而且可以使用动态加载JS的方式来加快组件的渲染,我们再也不必一次加载已经达到1MB的ext-all.js了,本文介绍如何在EXTJS4中创建一个window。 共:10 小节, ...

    界面框架extjs学习笔记

    EXTJS in Action 是一本专为学习EXTJS编写的书籍,但这里我们主要关注学习笔记中的关键知识点。 首先,EXTJS的目录结构非常重要,因为它包含了所有必要的资源和源码: 1. `adapter`:这部分包含了适配器,用于将...

    Extjs 5 学习笔记

    ### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...

    ExtJs学习笔记 ExtJs Api

    适合ExtJs开发人员extjs技术上手以及深入

    extjs 学习心得笔记

    在探讨《ExtJS学习心得笔记》这一主题时,我们不仅会深入理解ExtJS框架的核心概念与实践技巧,还会从新手的角度出发,提炼出一系列有助于快速上手的学习策略,避免常见的学习陷阱,确保学习过程高效而有成效。...

    ExtJs简明教程+Extjs学习笔记

    ExtJs简明教程+Extjs学习笔记,来源网络,免费奉送,我讨厌需要资源分~

    ExtJs学习笔记,共30讲

    1. **ExtJs 结构树**:这部分内容可能涉及ExtJs如何构建可自定义的用户界面组件树,包括容器、面板、表格等,并介绍如何组织和布局这些组件。 2. **对ExtJs的态度**:可能探讨了作者对ExtJs的看法,包括其优点(如...

    Extjs treeselector 树结构选择器

    ExtJS TreeSelector是一款基于ExtJS库的组件,它扩展了基础的itemselector功能,提供了一种以树形结构展示数据的选择器。这个组件特别适用于那些需要用户从层次化的数据集中进行选择的应用场景,例如组织架构、目录...

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    语言程序设计资料:ExtJs学习笔记-2积分.doc

    老师整理的extjs学习笔记

    ### ExtJS 学习笔记概览 #### 一、ExtJS 入门 **1.1 ExtJS 构成及如何引用** ExtJS 是一款基于 JavaScript 的开源框架,专为 Web 应用程序的前端界面设计。其核心优势在于提供了一套丰富的 UI 组件和强大的数据...

    extjs时间日期选择组件

    在EXTJS这个强大的JavaScript框架中,时间日期选择组件是一个至关重要的元素,它为用户提供了方便的方式来选择和输入日期和时间。这些组件使得Web应用程序能够更好地处理时间相关的数据输入,提高用户体验,同时也...

    Extjs学习笔记之七 布局

    Extjs作为一款优秀的JavaScript框架,它的布局管理功能非常强大,能够方便地管理页面中各个组件的位置和尺寸。随着Panel组件内包含的组件数量增加,布局问题就显得尤为重要。Extjs的Layout就是为解决这一问题而设计...

Global site tag (gtag.js) - Google Analytics