ext笔记
命名
- The top-level namespaces and the actual class names should be CamelCased. Everything else should be all lower-cased. For example:MyCompany.form.action.AutoLoad
- path/to/src is the directory of your application’s classespath/to/src is the directory of your application’s classes
- Acceptable method names:encodeUsingMd5()
- Acceptable variable names:var isGoodName
声明
Ext.define(className, members, onClassCreated);
获取值
Ext.define()中的Config中的值可以用getXxx,setXxx来获取,注意驼峰命名
- config: {
- title: 'Title Here',
- bottomBar: {
- height: 50,
- resizable: false
- }
- }
技能
加上事件
下面例子就加上了click事件
- var container = Ext.create('Ext.Container', {
- renderTo: Ext.getBody(),
- html: 'Click Me!',
- listeners: {
- click: function(){
- Ext.Msg.alert('I have been clicked!')
- }
- }
- });
- container.getEl().on('click', function(){
- this.fireEvent('click', container);
- }, container);
widget not found
sencha app build
以上是打包的命令,运行后在build文件夹中会有production文件夹,东西都在那里面。
进去找到index.html点开后,如果报错,列如 widget/tabpanel.js 404 not found这种,那就找到用到tabpanel的地方,一般是因为你 xtype:tabpanel 这种地方,然后在相应的文件中,require下对应的名称即可,以tabpanel为例,requier写法如下:
- requires: [
- 'Ext.container.Container',
- 'Ext.tab.Panel', //看这里!对就这里,这个值怎么查到的呢,很简单,就是xtype:tabpanel对应的那个名字啦(查官方文档)
- 'Ext.form.field.File'
- ],
通用方法
查找元素ext.componentquery
- 我这智商,找了好久 orz
- var myPanel = Ext.ComponentQuery.query('#myPanel');
- //实际使用过程中,需要写成这样才能真正拿到这个组件
- myPanel[0]
具体项目
grid相关
表格不要隔行变色,属性竟然藏在这里viewConfig
- viewConfig: {
- stripeRows: false
- }
表格多选行
- //配置
- selModel: {
- selType: 'cellmodel',
- mode : 'MULTI' //多选
- }
- //方法
- getSelection()
表格中的内容无法选中解决方法
- 这个大腿必须抱啊!!救人于水火啊!!!
- viewConfig: {
- enableTextSelection: true
- }
高亮行,
[取消高亮](http://forums.ext.net/showthread.php?868-CLOSED-Clearing-selection-from-a-gridpanel)
反正就是一把辛酸的泪,那些没设置延时的,你们怎么成功实现高亮的!!!
上结果:
- var urlListTab = Ext.ComponentQuery.query('#urlListTab')[0];
- setTimeout(function() {urlListTab.getSelectionModel().select(index, false, false)}, 800); //
- index为行的index值。第一个false时,进入这个grid时,有其他的高亮行时,指定的这行就不亮了,这个就看看,实际用的时候再测测
- //清除高亮
- GridPanel1.getSelectionModel().clearSelections //当前高亮全部去除
tab
我只是简单的想隐藏个tab,结果智商是硬伤,官方文档里就有好不好 orz
- var tabs = Ext.create('Ext.tab.Panel', {
- width: 400,
- height: 400,
- renderTo: document.body,
- items: [{
- title: 'Home',
- html: 'Home',
- itemId: 'home' // 看这里!!! 是itemId,不是id!!!
- }, {
- title: 'Users',
- html: 'Users',
- itemId: 'users',
- hidden: true
- }, {
- title: 'Tickets',
- html: 'Tickets',
- itemId: 'tickets'
- }]
- });
- Ext.defer(function(){
- tabs.child('#home').tab.hide();
- var users = tabs.child('#users');
- users.tab.show();
- tabs.setActiveTab(users);
- }, 1000);
store和storeManager
先吐槽,store的水好深(其实我好想打三个点,但我要忍住)
拿到store
- Ext.create('Ext.data.Store', {
- model: 'SomeModel',
- storeId: 'myStore'
- });
- var store = Ext.data.StoreManager.lookup('myStore');//用storeId拿到
用store
- Ext.create('Ext.data.Store', {
- model: 'SomeModel',
- storeId: 'myStore'
- });
- Ext.create('Ext.view.View', {
- store: 'myStore', //用storeId就到手啦,真好
- // other configuration here
- });
store具体方法
- //特别提醒,先要拿到store,说多了都是泪
- //增加内容
- myStore.add({some: 'data'}, {some: 'other data'});
- myStore.insert(index, records); //eg: myStore.insert(0, { "name": "hello", "age": "60"})
- myStore.find('name', 'hello'); //返回的是序列号,即index
- myStore.removeAt( index, [count] ) //嘿嘿嘿,拿到序号就可以删除啦
data
field
在这里可以重组field的数据
- {
- name: 'firstName',
- convert: function (value, record) {
- return record.get('name').split(' ')[0];
- },
- depends: [ 'name' ]
- }
data.model
绑定数据相关,好好看看
ajax相关
我一定要写下来,最后我都把我自己感动了,太不容易了,拿个值。
Ext.ajax
- Ext.define('ttt', function() {
- return{
- getData:function(){
- var userData;
- Ext.Ajax.request({
- async: false,//就是这个地方!要加!不然return出来的是undefined
- url: 'resources/userinfo.json',
- success: function(response, opts) {
- var obj = Ext.decode(response.responseText);
- console.log('成功')
- userData = obj;
- },
- failure: function(response, opts) {
- console.log('server-side failure with status code ' + response.status);
- userData = 'failure'
- }
- });
- return userData;
- }
- }
- })
- var test = new ttt();
- var userData = test.getData()
- //我会说这个userData拿到了要来干嘛吗?
- //引入
- viewModel: {
- data: userData
- }
- //使用
- {
- xtype:'button',
- bind: {
- text: '{username}'//json里面有的字段就可以用啦
- },
- }
- //正常实用款
- Ext.Ajax.request({
- url: 'resources/userinfo.json',
- success: function(response, opts) {
- var data = Ext.decode(response.responseText);
- //数据处理动起来
- },
- failure: function(response, opts) {
- console.log('server-side failure with status code ' + response.status)
- }
- });
- //亮点来啦!! [jsonp](http://docs.sencha.com/extjs/6.0/6.0.0-classic/#!/api/Ext.data.proxy.JsonP)
- proxy: {
- type: 'jsonp',
- url : 'http://domainB.com/user',
- callbackKey: 'callback', //亮点在这里,callback=Ext.data.JsonP.callback1 “callback”此字段名一定要匹配!!!
- reader: {
- rootProperty: 'rows',
- totalProperty: 'resutls'
- }
- },
define
我觉得挺实用的,拉出来
- Ext.define('My.awesome.Class', {
- someProperty: 'something',
- someMethod: function(s) {
- alert(s + this.someProperty);
- }
- ...
- });
- var obj = new My.awesome.Class();
- obj.someMethod('Say '); // alerts 'Say something'
base64
- 自带!!!
- //解码
- res = Ext.util.Base64.decode(res);
ext笔记的更多相关文章
- ExtJs4 笔记(4) Ext.XTemplate 模板
ExtJs4 笔记(4) Ext.XTemplate 模板 摘自:http://www.cnblogs.com/lipan/ 本篇将涉及到ExtJs中一个重要的概念,模板.话说Razor很神奇,但是我 ...
- 【Ext.Net学习笔记】07:后续
这些笔记都是在这个地址看到的:http://www.qeefee.com/category/extnet 然后跟着敲,去理解的. Ext.NET其实就是基于跨浏览器的ExtJS库和.NET Frame ...
- 【Ext.Net学习笔记】06:Ext.Net GridPanel的用法(GridPanel 折叠/展开行、GridPanel Selection、 可编辑的GridPanel)
GridPanel 折叠/展开行 Ext.Net GridPanel的行支持折叠/展开功能,这个功能个人觉得还说很有用处的,尤其是数据中包含图片等内容的时候. 下面来看看效果: 使用行折叠/展开功能之 ...
- 【Ext.Net学习笔记】05:Ext.Net GridPanel的用法(包含Filter、Sorter、Grouping、汇总(Summary)的用法)
GridPanel是用来显示数据的表格,与ASP.NET中的GridView类似. GridPanel用法 直接看代码: <ext:GridPanel runat="server&qu ...
- 【Ext.Net学习笔记】04:Ext.Net中使用数据、Ext.Net Store的用法、Ext.Net ComboBox用法
之前的几篇文章都是介绍Ext.Net较为基础的东西,今天的这一篇将介绍数据的一些用法,包括XTemplate绑定数据.Store(Modal.Proxy).ComboBox的用法等. XTemplat ...
- 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...
- 【Ext.Net学习笔记】02:Ext.Net用法概览、Ext.Net MessageBus用法、Ext.Net布局
Ext.Net用法概览 Ext.Net还是很强大,如果运用熟练可以极大的提高编程效率.如果你也要学习Ext.Net,原文博主推荐书籍:<Ext.Net Web 应用程序开发教程>,是英文的 ...
- 【Ext.Net学习笔记】01:在ASP.NET WebForm中使用Ext.Net
Ext.NET是基于跨浏览器的ExtJS库和.NET Framework的一套支持ASP.NET AJAX的开源Web控件,包含有丰富的Ajax运用,其前身是Coolite. 下载地址:http:// ...
- Ext.Net学习笔记24:在ASP.NET MVC中使用Ext.Net
在前面的笔记中已经介绍了如何在ASP.NET WebForm中使用Ext.Net,由于这个系列一直在WebForm中使用,所以并没有涉及到ASP.NET MVC中的用法. 如果你要在ASP.NET M ...
随机推荐
- 2013 Noip提高组 Day2
3288积木大赛 正文 题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前 ...
- [Xcode 实际操作]九、实用进阶-(15)屏幕截屏:截取当前屏幕上的显示内容
目录:[Swift]Xcode实际操作 本文将演示如何截取屏幕画面,并将截取图片,存入系统相册. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UI ...
- java多线程中用到的方法详细解析
在多线程学习的过程中涉及的方法和接口特别多,本文就详细讲解下经常使用方法的作用和使用场景. 1.sleep()方法. 当线程对象调用sleep(time)方法后,当前线程会等待指定的时间(t ...
- git上如何删除已有项目
删除fork别人的项目 由于最近想删除fork别人项目,步骤如下. 点击进入需要删除fork的项目 进入Settings选项 找到delete this repository按钮 确认是否要删除,Pl ...
- PAT甲级——1126 Eulerian Path
我是先在CSDN上发布的这篇文章:https://blog.csdn.net/weixin_44385565/article/details/89155050 1126 Eulerian Path ( ...
- [题解]区间dp_luogu_P3147 262144
小数据版本P3146,可以区间dp, 性质:对于一个区间如果能合并成一个数,那么这个数是确定的 理解:把每个数看做 2^x 的形式,那么如果合并:2^x + 2^x =2^(x+1) 所以 f [ i ...
- python 基础(十) 面向对象
面向对象 一.概念 类(class): 用来描述具有相同属性和方法的对象的集合 对象是类的实例化 类变量:类变量在整个实例化的对象中是共用的.定义在类中 并且是函数体外的 实例变量:只能作用于 当前类 ...
- Codeforces 997D(STL+排序)
D. Divide by three, multiply by two time limit per test 1 second memory limit per test 256 megabytes ...
- Technocup 2017 - Elimination Round 1 (Unofficially Open for Everyone, Rated for Div. 2) A
Vasily has a number a, which he wants to turn into a number b. For this purpose, he can do two types ...
- 2017 Multi-University Training Contest - Team 1 Add More Zero
Problem Description There is a youngster known for amateur propositions concerning several mathemati ...