控制器中获取store
在Controller中要获取View中的选中值我用
[javascript] view plaincopyprint?
var cmp = Ext.ComponentQuery.query('weldlist')[0].getSelectionModel();
可是当我需要获取View中的非选中值时,找了找似乎没有直接的方法,那么只能获取页面的Store全数据,突然发现这里不知道怎么获取了,看API加上度娘谷哥找到一些方法,mark一下助人助己。
API中,Componont类写着getCmp()方法可以获取到Ext封装的组件。而Store也被Ext认为属于组件部分。那为什么用getCmp()却获取不到这个对象呢?
因为Ext设计的控件其实最底层还是封装了<div>和css, 你说外观嘛,有外观的控件当然可以用div和css来显示,但是store可不是一个有外观的控件,它没有表现形式,只是一个普通的用来存储数据的对象而 已。如果是以div的形式保存在页面的话,那么数据在哪里?而且一个div也不可能保存store中的数据吧?这样会非常危险的。因为查看源码就会暴露 store中的数据,这对于数据权限控制是不利的。那store究竟在哪里呢?在内存中?
深入一步。从getCmp()的源码中可以理解到。getCmp()其实就是获取这个页面上的某个div。按照这样想下去就有点吻合了。Store如果不 是保存在页面的话,那么就肯定是保存在内存中(而这也符合对数据的保护)。另一方,Store如果不是保存在页面的话,那么getCmp()当然也就不能 获取到它了。
再深入一步,查看Store的API,发现一个很奇怪的问题,Store并没有id,取而代之的是storeId这样的一个属性。对于这个storeId的描述是:
[javascript] view plaincopyprint?
If passed, the id to use to register with the StoreMgr .
Note: if a (deprecated) id is specified it will supersede the storeId assignment.
大概意思是说:如果store成功初始化了,它的id将会被注册到一个叫StoreMgr(StoreManager的简写)的对象中。注意:如果id被指明的话,将会取代storeId。
store会被注册到一个叫StoreMgr的对象中?那我们就看看这个对象是何方神圣!
[javascript] view plaincopyprint?
StoreMgr: Class Ext.StoreMgr
The default global group of stores。//默认的全局Store组
This class is a singleton and cannot be created directly。这个类是唯一的,不能直接创建。
估计看到这里,大家都明白了,这个StoreMgr对象就是用来管理Store的。也就是说,这个对 象在Ext初始化之后,就存在了,采用单例模式,并负责store的存储和管理工作。这个对象估计就是存储在内存中的。我们声明的Store被保存到这里 来了,所以页面也就找不到了。
综上所述,Store可以用以下方法获取到:
[javascript] view plaincopyprint?
Ext.getCmp('combo_color').store;//通过引用这个store的控件来获取这个
Ext.StoreMgr.get('store_color'); //通过这个全局store管理器来获取 (store_color 是store_id)
控制器中获取store的更多相关文章
- MVC 在控制器中获取某个视图动态的HTML代码
ASP.NET MVC 在控制器中获取某个视图动态的HTML代码 如果我们需要动态的用AJAX从服务器端获取HTML代码,拼接字符串是一种不好的方式,所以我们将HTML代码写在cshtml文件中, ...
- MVC教程二:从控制器中获取URL的值
一.从控制器中获取URL的值有三种方式: 1.使用Request.QueryString[] 例如: string value = Request.QueryString["BookId&q ...
- 控制器中获取Field值
在ASP.NET MVC程序中,我们需要POST Data到制器中,是有很多方法.但是我们想在控制器中,获取Feild值呢?怎样获取?你可以留意到有一个类FormCollection.它能帮助到我们解 ...
- 在ASP.NET MVC控制器中获取链接中的路由数据
在ASP.NET MVC中,在链接中附加路由数据有2种方式.一种是把路由数据放在匿名对象中传递: <a href="@Url.Action("GetRouteData&quo ...
- ASP.NET在MVC控制器中获取Form表单值的方法
在网站开发中我们经常需要用到表单,那么,在前台页面的表单中提交到后台控制器后,后台控制器如何接收表单提交过来的数据呢?下面我们介绍几种常用的方法. 我们先看看前台页面,这里我们用一个用户名和密码的表单 ...
- larave 控制器中获取路由参数
Laravel中获取路由参数Route Parameters的五种方法示例 作者:SeekerLiu 这篇文章主要给大家介绍了关于Laravel中获取路由参数Route Parameters的五种方法 ...
- ASP.NET MVC 在控制器中获取某个视图动态的HTML代码
如果我们需要动态的用AJAX从服务器端获取HTML代码,拼接字符串是一种不好的方式,所以我们将HTML代码写在cshtml文件中,然后通过代码传入model,动态获取cshtml中的HTML代码 当然 ...
- ASP.Net MVC 在控制器中获取View中的form表单值的方法
在网站开发中,我们常常需要用到表单提交的方式,那么在MVC中是如何获取到表单中的数据呢?下面我们来介绍以下几种方式 首先我们先看看View前台页面 添加一个控制器 我们再看看前台页面的代码 @{ La ...
- laravel 控制器中获取不到session
protected $middleware = [ \Illuminate\Session\Middleware\StartSession::class, ]; 在 kernel.php中 加入Sta ...
随机推荐
- 大话设计模式C++版——建造者模式
日常做菜的过程中,经常会有忘记放盐或者放2次盐的经历,最后导致好好的一盘菜让大家无从下口.这个时候就需要用到建造者模式来规范炒菜的过程,来保证每一道菜都会经历加油.放食物.放盐.放味精这4道基本的工序 ...
- css常见的易混淆属性和值的区别(一)
css的属性很多,每一个属性的值也很多,组合起来便有成千上万种.不同属性之间的相互组合也可以产生不同的样式,css真是一种优美的样式设计语言.下面对工作中常见的易混淆的属性和值进行总结: 1. lin ...
- Java基础-super关键字与this关键字
用super调用父类构造方法 类如果没有显式声明构造方法,则自动生成无参数的默认构造方法. 1.先用一个无参数的父类构造方法验证一下, 执行子类构造方法会自动调用父类的构造方法.测试代码: class ...
- 【温故而知新-Javascript】使用地理定位
地理定位(Geolocation)API让我们可以获取用户当前地理位置的信息(或者至少是正在运行浏览器的系统的位置).它不是HTML5规范的一部分,但经常被归组到与HTML5相关的新功能中. 1. 使 ...
- 创建MyOffice项目
创建查看评分窗体(FrmLOOK),添加定义成员数组,将员工数据绑定到FrmLOOK窗体的ListView控件上 public ListViewItem lv; private void Form1_ ...
- NOIP1999邮票面值设计[搜索|DP]
题目描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤40)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1-MAX之间的每一个邮资值都能得到 ...
- Unity Shader IDE — Sublime Text2
使用MonoDevelop写了一段时间的Shader代码,发现效率太低了,所以换用Sublime Text. 安装Sublime Text 1.下载 sublime Text2 官网:http://w ...
- jmeter 与 json
1.添加一个 http信息头管理: Add new value for Name = “Content-Type” and value = “application/json” (without qu ...
- java 27 - 7 反射之 通过反射越过泛型检查
之前学过的集合里面都有泛型,规定了泛型的类型以后,就不能往这个集合添加除了这个类型之外的类型数据了. 那么,有什么方法可以越过这个泛型,添加特定类型以外的类型数据么? 例子: 往ArrayList& ...
- Xcode 快捷键
1.commmand +shift +k ,隐藏模拟器键盘,用户可以在真实键盘输入到模拟屏幕上.