`
simen_net
  • 浏览: 307068 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ExtJS 3.2 下拉树

阅读更多

Struts2+Spring2.5+Hibernate3(JPA)+ExtJS3基本后台 将ExtJS替换为3..2版本后发现下拉数有些异常:之前展开下来树的下级节点时,下拉菜单不会关掉。但是在3.2版本中无论你在弹出的选择框中点击任何部分,包括选中节点、点击空白处以及点击展开下级节点,弹出框都会自动关闭。查看源代码发现有一部分代码的修改比较困惑:

3.1版本中Combo.js的部分代码

onViewClick : function(doFocus){
    var index = this.view.getSelectedIndexes()[0],
        s = this.store,
        r = s.getAt(index);
    if(r){
        this.onSelect(r, index);
    }else if(s.getCount() === 0){
        this.onEmptyResults();
    }
    if(doFocus !== false){
        this.el.focus();
    }
},
onEmptyResults : function(){
    this.collapse();
},

3.2版本中Combo.js的部分代码

onViewClick : function(doFocus){
    var index = this.view.getSelectedIndexes()[0],
        s = this.store,
        r = s.getAt(index);
    if(r){
        this.onSelect(r, index);
    }else {
        this.collapse();
    }
    if(doFocus !== false){
        this.el.focus();
    }
},

 相比之下这里没有进行if(s.getCount() === 0)的比较,貌似这个是判断store是否存在记录的。个人感觉这应该是3.2的一个Bug。因此修改ExtJS3 下拉树TreeComboBox的修改 在代码中增加

// 修复ExtJS3.2中自动关闭下来树的Bug
Ext.override(Ext.form.ComboBox, {
      onViewClick : function(doFocus) {
        var index = this.view.getSelectedIndexes()[0], s = this.store, r = s.getAt(index);
        if (r) {
          this.onSelect(r, index);
        } else if (s.getCount() === 0) {
          this.collapse();
        }
        if (doFocus !== false) {
          this.el.focus();
        }
      }
    });
 

 

 


3
0
分享到:
评论
5 楼 socrazy06 2012-02-24  
根据你给的例子,写了个demo但是发现一个问题,下拉树只有在点击下拉时才会去加载数据,并渲染。有方法可以在页面加载完成后就加载数据并渲染树吗?
4 楼 naily 2011-09-26  
非常感谢你得代码,本人用3.2.6版本遭遇同样问题,放了你得代码后轻松解决。之前的下拉树 点击+号,下拉框就消失了。
3 楼 zxingchao2005 2011-07-26  
解决了,谢谢大侠!
2 楼 silvernet 2011-03-26  
调试了半天,原来是3.2有这个BUG,加上那段override解决了,谢谢!
1 楼 jx_dream 2011-01-24  
我也遇到了这个问题,还没解决呢,但是看了老半天你这个,有好多地方不明白。你能发点详细点的让我看看吗 谢谢了

相关推荐

    安装Extjs的插件spket,extjs3.2版.doc

    ExtJS 3.2通常包含一个名为`ext.jsb`的文件,这个文件是Spket识别ExtJS库的关键。接下来,按照以下步骤安装Spket插件: 1. **以Eclipse插件形式安装**: - 打开Eclipse,通过菜单栏依次选择`Help` -> `Software ...

    ExtJS4下拉树组件

    ### ExtJS4 下拉树组件知识点详解 #### 一、概述 在ExtJS4中,下拉树组件(TreeComboBox)是一种特殊的组合框,它结合了下拉列表和树形结构的功能,允许用户通过选择树节点来填充组合框的值。这种组件广泛应用于...

    ExtJS 3.2的中文参考手册

    ### ExtJS 3.2 的中文参考手册知识点详解 #### 1. **EXT简介** - **定位**: 作为一款强大的JavaScript框架,ExtJS主要用于构建Web应用程序的用户界面。ExtJS 3.2版本是一个成熟且稳定的版本,在此版本中包含了丰富...

    extjs时间控件精确秒

    EXTJS还提供了`picker`属性,用于创建一个下拉的时间选择器。默认情况下,这个选择器不会显示秒,但我们可以通过覆盖其配置来实现。例如,我们可以添加`showSeconds: true`来展示秒部分: ```javascript Ext....

    Extjs中文api

    在ExtJS 3.2版本中,该库提供了丰富的组件和布局管理,包括但不限于以下核心概念: 1. **组件(Components)**: ExtJS的核心是其组件模型,允许开发者创建复杂的UI元素,如表格、表单、树形视图、面板、窗口等。...

    基于vs2010的省市三级联动的DropDownList+Ajax的三种框架(aspnet/Jquery/ExtJs) 示例源代码

    "dropdown_ExtJS32_Net2"可能是使用ExtJS 3.2和ASP.NET 2.0的项目;"Downmoon.Framewrok"可能是一个自定义的框架或库;"dropdown_Ajax_Net2"和"dropdown_JQuery14_Net2"则分别对应ASP.NET 2.0下的Ajax和jQuery实现。...

    精通JS脚本之ExtJS框架.part2.rar

    3.2 创建第一个程序 3.2.1 下载ExtJS 3.2.2 部署到开发工具中 3.2.3 编写HelloWorld.html 3.2.4 运行调试ExtJS 3.3 辅助开发 3.3.1 调试工具Firebug 3.3.2 开发利器Spket 第4章 ExtJS事件机制 4.1 设计模式...

    学习extJs文档

    - **表单(Form)**:包含多种输入控件,如文本框、下拉列表等。 **3.2 事件管理** - **用户交互事件**:如点击、双击、悬停等。 - **系统事件**:如AJAX请求的开始、完成、失败等。 **3.3 AJAX与异步数据交换** ...

    精通JS脚本之ExtJS框架.part1.rar

    3.2 创建第一个程序 3.2.1 下载ExtJS 3.2.2 部署到开发工具中 3.2.3 编写HelloWorld.html 3.2.4 运行调试ExtJS 3.3 辅助开发 3.3.1 调试工具Firebug 3.3.2 开发利器Spket 第4章 ExtJS事件机制 4.1 设计模式...

    extjs实践大量实例讲解

    - **表单组件**:ExtJS 包含了大量的表单组件,如文本框、复选框、下拉列表等,这些组件均支持验证规则的设置。 - **实例代码**: ```javascript Ext.create('Ext.form.Panel', { title: 'Login Form', items: ...

    老师整理的extjs学习笔记

    **3.2 ExtJS 常用组件的继承关系及其管理** ExtJS 提供了大量的 UI 组件,每个组件都有其特定的功能。组件之间的继承关系使得某些通用功能(如事件处理)可以在父类中实现,从而减少代码重复。 **3.3 Ext....

    Extjs中文教程2.x

    **3.2 实现方式** - **提示框**: `Ext.Msg.alert('Title', 'Message')`。 - **输入框**: `Ext.Msg.prompt('Title', 'Message', function(btn, value){})`。 - **确认框**: `Ext.Msg.confirm('Title', 'Message', ...

    Ext3.1 21款精美主题和动态换皮肤

    <link id="theme" rel="stylesheet" type="text/css" href="ext/2.0/resources/css/xtheme-default.css" />2、定义一个combox,将可选样式作为数据源填入下拉列表: 定义样式数据 Ext.simpledata.themes = [ ['...

    掏钱学Ext(完整版) 附全部源码

    9.1. 下拉树形选择框TreeField 9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid A. 常见问题乱弹 A.1. 怎么查看ext2里的api文档 A.2. 想把弹出对话框单独拿出来用的看这里 A.3. 想把...

    EXT多选COMBO

    在EXTJS中,ComboBox是基于Ext.form.field.ComboBox类创建的,通常用于显示一个可搜索的下拉列表。多选功能则是通过扩展ComboBox的基本行为来实现的。这可能涉及到监听用户的交互事件,如点击或键盘操作,以及处理...

    EXT2.0中文教程

    9.1. 下拉树形选择框TreeField 9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页...

    Myeclipse下ext插件spket的配置和安装

    - 选择 “ExtJS”,点击 `Add Library`,在下拉列表中选择 “ExtJS”。 - 再次选择 “ExtJS”,点击 `Add File`,在本地 ./ext-2.x/source 目录中选取 `ext.jsb` 文件。 3. **设置默认 ExtJS Profile**: - 选择...

    Ext 开发指南 学习资料

    9.1. 下拉树形选择框TreeField 9.2. 带全选的checkbox树形CheckBoxTree 9.3. 带全选的checkbox的grid 9.4. fisheye 9.5. 可以设置时间的日期控件 9.6. JsonView实现用户卡片拖拽与右键菜单 9.7. 下拉列表选择每页...

    Ext Js权威指南(.zip.001

    7.5.11 树节点:ext.data.nodeinterface与ext.data.tree / 364 7.5.12 store的方法 / 366 7.5.13 store的事件 / 368 7.5.14 store管理器:ext.data.storemanager / 369 7.6 综合实例 / 369 7.6.1 远程读取json...

Global site tag (gtag.js) - Google Analytics