`
chenxueyong
  • 浏览: 342069 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Extjs学习笔记(-):ComboBox联动(下)

阅读更多

  说是下篇,其实也无所谓上下了,只是我在上一篇关于实现ComboBox联动的文章中提出的问题,虽然也在Google和园子里泡了很久,苦于E文太菜,没能在Extjs官方论坛中寻求得到帮助,幸好皇天不负有心人,通过这么多天的努力,也总算吧问题给解决了,其实也不知道是不是实现我这个问题的最佳方法了,只算是能够实现吧,所以,我也就算抛砖引玉吧,希望各位大虾能多多指教.问题的提出,请参看我的上篇文章:Extjs学习笔记(-):ComboBox联动()

    上篇曾提出不能实现第二个ComboBox数据的动态加载,下面先把正确的代码贴出,然后再就Extjs的某些属性,谈谈我的理解,不对之处,望指正.

 

  1     //分类方式数据源

  2    var store=new Ext.data.Store({

  3        autoLoad:true,

  4        proxy:new Ext.data.HttpProxy({

  5            url:'../admin/GetCatWise.aspx'

  6        }),

  7        reader:new Ext.data.JsonReader({

  8            id:'ID',

  9            fields:['ID','Name']

 10        }),

 11        remoteSort:true

 12    });

 13     //第二个ComboBox数据源

 14    var comstore =new Ext.data.Store({

 16        autoLoad:false,

 17        proxy:new Ext.data.HttpProxy({

 18            url:'../admin/GetCategory.aspx',

 20            method:'post'

 21        }),

 22        reader:new Ext.data.JsonReader({

 23            id:'ID',

 24            fields:['ID','CategoryName']

 25        }),

 26            remote:true

 27    });

 28

 29var form=new Ext.form.FormPanel({

 30        labelWidth:55,

 32        bodyStyle:'padding:5px 5px 0',

 33        frame:true,

 34        items:[{

 74            fieldLabel:'分类方式',

 75            xtype:'combo',

 76            editable :false,

 77            name:'labCatWise',

 78            id:'cmbCatWise',

 79            lazyInit:false,

 80            emptyText :'请选择',

 81            displayField:'Name',

 82            valueField :'ID',

 83            mode:'local',

 84            store:store,

 85            listeners:{select:function(){

 86                try{

 87                    var parent=Ext.getCmp('comParent');

 90                    parent.store.reload({params:{wiseID:this.value}});

 91                }

 92                catch(ex)

 93                {

 94                    Ext.MessageBox.alert(ex);

 95                }

 96            }},

 97            triggerAction:'all',

 98            typeAhead :true,

 99            anchor:'100%'

100           

101        }, {

102            fieldLabel:'所属父类',

103            xtype:'combo',

104            editable :false,

105            emptyText :'请选择',

106            id:'comParent',

107            loadingText :'正在请求数据,请稍后',

108            store:comstore,

109            displayField:'CategoryName',

110            valueField :'ID',

111            mode:'local',

112            triggerAction:'all',

113            name:'labParent',

114            anchor:'100%'

115        }]

121    });

    现在,我就上面的代码做几点解释:

    1.通过设置第一个ComboBoxSelect事件,select事件中动态的加载第二个ComboBoxstore,以达到ComboBox的联动效果.

    2.我在select事件中,通过给第二个store传递不同的参数,然后再重新加载数据,以改变第二个store,但我在之前的实现方式是这样的:

       var store=new Ext.data.Store(...);

       secondCombo.store=store;

   这样是不能实现的,这就引发了我对Extjs类的配置属性(config),公共属性(),公共方法(Method)的思考,我认为,Extjs类的配置属性是不能被动态配置的,就如同上面这样的写法,当然,可能可以通过调用或设置某些公共的方法和属性来改变这些配置属性,但不能直接设置.不知道我这样理解对否?

    3.mode的理解,请注意高亮显示,在这里,我们把mode设置成'local',原因再于,在第一个comboBoxstore,我们设置了她的autoload属性为true,也就是在页面加载的时候就已经从服务器获取了数据,所以,我们在第一个ComboBox中的Mode就设置为local,原因是我们已经获取了数据.第二个ComboBox中的store的数据,是我们在第一个ComboBoxselect事件中获取的,所以,在这里,我们也要把她的mode设置成local.关于comboBoxMode配置属性的设置,需要根据自己的实际情况来设置,需要大家在不断的练习中掌握.

    好了,本说我E文菜,看来,我的中文更菜哦,不多说,望大家指正.

分享到:
评论

相关推荐

    Extjs学习笔记(-):ComboBox联动

    本篇学习笔记将深入探讨EXTJS中ComboBox的联动效果,即一个ComboBox的选择会触发另一个ComboBox的数据更新,以此来提供更丰富的交互体验。通过源码解析和工具应用,我们将了解如何构建和实现这种联动效果。 ...

    Extjs4---combobox省市区三级联动+struts2

    在三级联动场景中,当用户选择一个省份时,ComboBox会动态加载并显示该省份下的城市列表;同样,当城市被选中后,会进一步加载并展示该城市内的区或县。这种联动效果可以提升用户体验,减少不必要的输入。 要实现这...

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

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

    extjs ComboBox联动

    Extjs4---combobox联动实例

    无废话ExtJs 教程十[下拉列表:Combobox]

    在ExtJS中,下拉列表(Combobox)是常见的组件之一,它结合了输入框和下拉菜单的功能,允许用户进行选择或自由输入。本教程将深入探讨ExtJS中的Combobox组件,包括其基本用法、配置选项、事件处理和自定义功能。 1....

    ExtJS笔记---Grid实现后台分页

    这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...

    extjs学习笔记-开发者必备

    对爱好extjs的开发者有帮助,提供中文api文档,及常用的方法!

    ExtJs常用布局--layout详解实例代码

    ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...

    Extjs4.0学习笔记

    Extjs4.0学习笔记,以下是部分介绍: xtjs4,创建Ext组件有了新的方式,就是Ext.create(....),而且可以使用动态加载JS的方式来加快组件的渲染,我们再也不必一次加载已经达到1MB的ext-all.js了,本文介绍如何在EXTJS4...

    jasmine-node-jsdom-extjs-testing-tool:使用 jasmine-node 和 jsdom 的功能性前端 Ext.JS 测试自动化工具

    茉莉花节点jsdom-extjs-testing-tool 使用 jasmine-node 和 jsdom 的功能性前端 Ext.JS 测试自动化工具如果您已经安装了节点包模块( ),安装将为您获取所需的库。Ext.JS 设置使用 Ext.JS 包并遵循 Sencha cmd 企业...

    extjs中的xtype的所有类型介绍

    xtype 是 ExtJS 的核心组件之一,它提供了大量的组件类型,满足不同场景下的需求。 基本组件 1. button - xtype: 'button', 描述: 普通按钮 2. splitbutton - xtype: 'splitbutton', 描述: 带下拉菜单的按钮 3. ...

    extjs-620-docs.zip

    extjs-620-docs官方文档extjs-620-docs官方文档extjs-620-docs官方文档

    ExtJS笔记----FormPanel的使用

    NULL 博文链接:https://lucky16.iteye.com/blog/1490278

    ExtJs学习例子:多级联动下拉菜单演示例子

    前台采用ExtJs 2.2.1编写(由于库文件比较大,考虑到大家本机都有了,所以在此没有上传,大家直接改一下路径即可),后台采用asp+access编写(看文件名就知道了). 本例子演示的4级联动菜单:州+国家+城市+地区

    extjs-theme-bootstrap

    "extjs-theme-bootstrap" 是针对 EXTJS4 的一个主题,它借鉴了 Bootstrap 的设计风格,让 EXTJS4 应用程序具有更加现代化和一致的外观。 Bootstrap 是一个流行的前端开发框架,由 Twitter 推出,主要用于构建响应式...

    extjs6.2 admin-dashboard模板

    ExtJS 6.2是Sencha公司开发的一款强大的JavaScript框架,专门用于构建企业级的Web应用程序。Admin Dashboard模板则是ExtJS 6.2中的一个重要组件,它为开发者提供了一个现成的、完整的管理界面框架,方便快速搭建后台...

    extjs 自动补全 模拟combobox

    EXTJS并没有直接提供一个名为"自动补全"的组件,但它可以通过模拟Combobox组件来实现这一效果。Combobox是EXTJS中的一个下拉选择框,它可以显示一个下拉列表供用户选择,同时也可以配合自动补全功能。 首先,让我们...

    extjs的ComboBox 2级联动

    本文将深入探讨如何在ExtJS中实现ComboBox的二级联动。 首先,我们需要理解ExtJS中的ComboBox基本结构。ComboBox由几个关键部分组成,包括store(数据存储)、displayField(显示字段)和valueField(值字段)。...

    ExtJS学习笔记.doc

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

Global site tag (gtag.js) - Google Analytics