[ExtJS5学习笔记]第三十五节 sencha extjs 5 组件查询方法总结

一个UI前台组件肯定会比较多,我们通常习惯性的使用ID来获取需要操作的组件,但是这种方法是extjs推荐的么?有没有extjs推荐使用的获取组件的方法呢?

目录

  • 目录
    • extjs的查询组件的API
    • 查询实例
      • 基本的组件查询
      • 组件树查询
      • 通过组件的属性检索
      • 属性匹配操作符
      • 逻辑运算的
    • 官方案例

extjs的查询组件的API

组件查询API文档地址:5.1.0-apidocs/#!/api/Ext.ComponentQuery-method-query
可以看到是使用的Ext.ComponentQuery这个单例的query方法来进行查询的。

查询实例

基本的组件查询

  1. 查询xtype组件

    prevField = myField.previousNode('textfield');
    

    这表示查询所有 textfield 以及继承自TextField的组件都会被查询。

    prevTextField = myField.previousNode('textfield(true)');
    

    这表示只查询TextField类的,其他继承类不用去查询,只需要传入true表示严格查询即可。

  2. ID或者ItemID查找

    #myContainer
    当需要查询ID定义的组件的时候,可以使用#来查询。

  3. xtype和ID或者ItemID组合使用
     panel#myPanel
    

    这样可以尽可能的减少ID带来的冲突,对xtype进行了一次过滤。

组件树查询

看下面一个查询实例:

window[title="Input form"] textfield[name=login] ^ form > button[action=submit]

语句从左到右执行,执行完成一个,就按照当前找到的那个再接着往下执行。所以这句话的意思是:
找到标题为Iput form的window的叫做login的textfield的父窗体中button的提交名称为submit的那个按钮。

通过组件的属性检索

上述例子就可以看到 当查询title为Input form的window的时候就是使用的组件的属性。

属性匹配操作符

  1. =
    表示严格等于 。
  2. ~=
    表示只要搜索到检索词即可。
  3. ^=
    表示以什么什么 开头
  4. $=
    表示以什么什么结尾的
  5. /=
    表示支持正则表达式的

逻辑运算的

  1. and逻辑

    Ext.ComponentQuery.query('panel[cls~=my-cls][floating=true][title$="sales data"]');
    

这种类型的是表示逻辑and

  1. or逻辑

    Ext.ComponentQuery.query('field[fieldLabel^=User], field[fieldLabel*=password]');
    

官方案例

    // retrieve all Ext.Panels in the document by xtype
    var panelsArray = Ext.ComponentQuery.query('panel');

    // retrieve all Ext.Panels within the container with an id myCt
    var panelsWithinmyCt = Ext.ComponentQuery.query('#myCt panel');

    // retrieve all direct children which are Ext.Panels within myCt
    var directChildPanel = Ext.ComponentQuery.query('#myCt > panel');

    // retrieve all grids or trees
    var gridsAndTrees = Ext.ComponentQuery.query('gridpanel, treepanel');

    // Focus first Component
    myFormPanel.child(':focusable').focus();

    // Retrieve every odd text field in a form
    myFormPanel.query('textfield:nth-child(odd)');

    // Retrieve every even field in a form, excluding hidden fields
    myFormPanel.query('field:not(hiddenfield):nth-child(even)');
时间: 2024-08-03 06:52:35

[ExtJS5学习笔记]第三十五节 sencha extjs 5 组件查询方法总结的相关文章

[ExtJS5学习笔记]第三十四节 sencha extjs 5 grid表格之java后台导出excel

继上次使用js前端导出excel之后,还有一个主要大家比较关注的是后台实现导出excel,因为本人开发使用的java所以这里使用apache的开源项目poi进行后台excel的导出. 本文目录 本文目录 poi项目下载及加载 extjs前端导出设置 extjs后台对应的解决方案 创建excel工作簿 创建一个excel页签 生成excel样式并初始化 产生表格标题行build headers 构造数据行build rows poi项目下载及加载 POI项目是apache官网的一个开源项目,其主要

[ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总

本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 本文以一个实际例子,使用了extjs的gridpanel中的分组统计显示功能,涉及知识点:   Ext.grid.Panel  model/store store中的data grid中的featu

[ExtJS5学习笔记]第三十三节 sencha extjs 5 grid表格导出excel

使用extjs肯定少不了使用表格控件,用到表格,领导们(一般)还是惯于使用excel看数据,所以用到extjs表格的技术猿们肯定也会有导出表格excel这一个需求,本文主要针对如何在用extjs将grid表格导出到excel,使用的是前端导出,不涉及后端. 源代码打包下载 将源代码嵌入到应用中 查看导出按钮以及导出效果 扩展支持sum统计和groupsum分组 源代码打包下载 本次使用的是github上的一个开源项目Exporter 下载地址:https://github.com/iwiznia

WPF and Silverlight学习笔记(二十五)

WPF and Silverlight学习笔记(二十五):使用CollectionView实现对绑定数据的排序.筛选.分组 在第二十三节,我们使用CollectionView实现了对于绑定数据的导航,除导 航功能外,还可以通过CollectionView对数据进行类似于DataView的排序.筛选 等功能. 一.数据的排序: 使用第二十四节的数据源,查询所有 的产品信息: 1: <Window x:Class="WPF_24.CollectionViewSortData" 2:

[ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置

本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ sencha extjs 5 增加一个struts2的配置,这样可以在设置好前台布局之后,与后台交互获取数据显示.现在有一个问题是struts2对于url的跳转action支持比较良好,但是对于像E

[ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器

本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 使用sencha cmd build app 生成的工程,我们期望只使用cmd打包好之后的那一个压缩后的js,而不用将体积庞大的所有ext代码都部署. 试了一下ext的官方例子,打包之后,我们使用b

《Pro ASP.NET MVC 3 Framework》学习笔记之二十五【Filters】

过滤器(Filters) 过滤器(Filters)向请求处理管道注入了额外的逻辑.他们提供了一种简单而优雅的方式实现了横切关注点,这个术语是针对整个应用程序使用的功能,并不能灵活的适用任何一个点,所以这个会打破分解关注点的模式.像日志,验证和缓存都是经典的横切关注点的例子. 之所以称为过滤器(Filters),是因为这个术语同样应用于其他web应用程序框架里面,包括Ruby on Rails.然而,MVC框架里面的过滤器完全不同于ASP.NET平台里面的Request.Filters和Respo

WPF and Silverlight学习笔记(三十):Brush(2)

上一篇文章主要绍介的是Brush中的SolidColorBrush.渐变Brush及 TileBrush,本篇将详细探讨TileBrush的三种子类型:ImageBrush. DrawingBrush和VisualBrush. 一.ImageBrush ImageBrush通过 一幅位图填充区域,定义一种Brush.其主要属性即ImageSource指定一幅位图图 片. 二.DrawingBrush DrawingBrush以矢量为源填充区域,与 ImageBrush的区别在于其与分辨率无关,在

流媒体技术学习笔记之(十五)FFmpeg编码遇到的错误、警告、Debug记录

When encoding H.264 using ffmpeg I get the following type of warnings en masse:  Past duration 0.606377 too large ? FFMpeg版本在2015年1月15日后经常显示此警告. 它已被添加以警告可能的速率控制失真,否则不会造成任何危害.      real-time buffer 98% full! frame dropped? ffmpeg -re -rtbufsize 1000M