- 浏览: 196339 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
在世界的中心呼喚愛:
思路很好
连连看全局消除算法 -
tianaozhu:
请问,我修改了词库和源文件怎么就不好用了, 我源文件是: My ...
自己动手开发翻译软件(Java版) -
Arlrn:
博主你好,最近在学习排序算法,看了你的博客,你的直接插入排序, ...
各种排序算法的实现及其比较 -
sharong:
有一个明显错误,很显然冒泡排序的时间复杂度是O(n^2)
各种排序算法的实现及其比较 -
julydave:
希尔排序不太对吧。。
各种排序算法的实现及其比较
可编辑的grid。
可以响应数据加载完时的事件。。。
可以编辑:
Ext.onReady(function(){
/** * Handler specified for the 'Available' column renderer * @param {Object} value */ function formatDate(value){ return value ? value.dateFormat('M d, Y') : ''; } // 取短名,这个技巧之后可以多加利用 var fm = Ext.form; // the column model has information about grid columns // dataIndex maps the column to the specific data field in // the data store (created below) var cm = new Ext.grid.ColumnModel({ //这个是比较实用的 /*After the data has been read into the client side cache (Store), the ColumnModel is used to configure how and what parts of that data will be displayed in the vertical slices (columns) of the grid. The Ext.grid.ColumnModel Class is the default implementation of a ColumnModel used by implentations of GridPanel.*/ // specify any defaults for each column defaults: { sortable: true // columns are not sortable by default }, columns: [{ //各个列的属性 id: 'common', header: 'Common Name', //列名 dataIndex: 'common', //对应得到的数据中的某一个 width: 220, // 规定一下双击时编辑器的类型,其中fm是上面给Ext.Form取的短名 editor: new fm.TextField({ allowBlank: false //放空会画红线报错 }) }, { header: 'Light', dataIndex: 'light', width: 130, editor: new fm.ComboBox({ typeAhead: true, //true to populate and autoselect the remainder of the text being typed after a configurable delay (typeAheadDelay) if it matches a known value (defaults to false) triggerAction: 'all', //每次选的时候都能显示所有的选项 // transform the data already specified in html transform: 'light', /*transform:The id, DOM node or element of an existing HTML SELECT to convert to a ComboBox. Note that if you specify this and the combo is going to be in an Ext.form.BasicForm or Ext.form.FormPanel, you must also set lazyRender = true.*/ lazyRender: true, listClass: 'x-combo-list-small' }) }, { header: 'Price', dataIndex: 'price', width: 70, align: 'right', renderer: 'usMoney', editor: new fm.NumberField({ allowBlank: false, allowNegative: false,//是否允许为负数 maxValue: 100000 }) }, { header: 'Available', dataIndex: 'availDate', width: 95, renderer: formatDate, editor: new fm.DateField({ format: 'm/d/y', minValue: '01/01/06',//从06年1月1日起 disabledDays: [0, 6],//表示周一和周五不能选 ,下面有图示 disabledDaysText: 'Plants are not available on the weekends' }) }, { //最后一列插入的是复选框checkcolumn xtype: 'checkcolumn', header: 'Indoor', dataIndex: 'indoor', width: 55 }] }); // create the Data Store var store = new Ext.data.Store({ // destroy the store if the grid is destroyed autoDestroy: true, //这个加上好些,可以在一定程度上减少内存泄漏 // load remote data using HTTP url: 'plants.xml', // specify a XmlReader (coincides with the XML format of the returned data) reader: new Ext.data.XmlReader({ // records will have a 'plant' tag,record is the DomQuery path to the repeated element which contains record information. record: 'plant', // use an Array of field definition objects to implicitly create a Record constructor fields: [ // the 'name' below matches the tag name to read, except 'availDate' // which is mapped to the tag 'availability' {name: 'common', type: 'string'}, {name: 'botanical', type: 'string'}, {name: 'light'}, {name: 'price', type: 'float'}, // dates can be automatically converted by specifying dateFormat {name: 'availDate', mapping: 'availability', type: 'date', dateFormat: 'm/d/Y'}, {name: 'indoor', type: 'bool'} ] }), sortInfo: {field:'common', direction:'ASC'} }); // create the editor grid var grid = new Ext.grid.EditorGridPanel({ store: store, cm: cm, renderTo: 'editor-grid', width: 600, height: 300, autoExpandColumn: 'common', // column with this id will be expanded title: 'Edit Plants?', frame: true, clicksToEdit: 1, tbar: [{ text: 'Add Plant', handler : function(){ // access the Record constructor through the grid's store var Plant = grid.getStore().recordType; /*recordType:The Record constructor as supplied to (or created by) the Reader. Read-only.而且这是一个数组,里面可以自定义内容,这里要传给Ext.data.Record.create. If the Reader was constructed by passing in an Array of Ext.data.Field definition objects, instead of a Record constructor, it will implicitly create a Record constructor from that Array (see Ext.data.Record.create for additional details). This property may be used to create new Records of the type held in this Store, for example: // create the data store var store = new Ext.data.ArrayStore({ autoDestroy: true, fields: [ {name: 'company'}, {name: 'price', type: 'float'}, {name: 'change', type: 'float'}, {name: 'pctChange', type: 'float'}, {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'} ] }); store.loadData(myData); // create the Grid var grid = new Ext.grid.EditorGridPanel({ store: store, colModel: new Ext.grid.ColumnModel({ columns: [ {id:'company', header: 'Company', width: 160, dataIndex: 'company'}, {header: 'Price', renderer: 'usMoney', dataIndex: 'price'}, {header: 'Change', renderer: change, dataIndex: 'change'}, {header: '% Change', renderer: pctChange, dataIndex: 'pctChange'}, {header: 'Last Updated', width: 85, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'} ], defaults: { sortable: true, width: 75 } }), autoExpandColumn: 'company', // match the id specified in the column model height:350, width:600, title:'Array Grid', tbar: [{ text: 'Add Record', handler : function(){ var defaultData = { change: 0, company: 'New Company', lastChange: (new Date()).clearTime(), pctChange: 0, price: 10 }; var recId = 3; // provide unique id var p = new store.recordType(defaultData, recId); // create new record grid.stopEditing(); store.insert(0, p); // insert a new record into the store (also see add) grid.startEditing(0, 0); } }] });*/ var p = new Plant({ //Plant就是上面定义的grid.getStore().recordType common: 'New Plant 1', light: 'Mostly Shade', price: 0, availDate: (new Date()).clearTime(), indoor: false }); grid.stopEditing(); //Stops any active editing store.insert(0, p); //往store中插入新加的内容 grid.startEditing(0, 0); //把新加的列设成编辑状态 } }] }); // 当数据加载完成时 触发的事件 store.load({ // store loading is asynchronous, use a load listener or callback to handle results callback: function(){ Ext.Msg.show({ title: 'Store Load Callback', msg: 'store was loaded, data available for processing', modal: false, //设成非模态,就是当消息弹出框没关时还能操作后面的内容 icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } }); });
发表评论
-
Ext js面向对象的特性
2011-05-11 11:06 10191、支持命名空间(Java里用的是包的概念) Ex ... -
Ext 2.x中,关于combobox的取值问题
2011-02-15 19:47 1778Ext中,关于combobox的取 ... -
Ext常用的知识点(三)--combobox和xml的绑定
2011-02-09 11:47 1070直接看代码,所有需要注意的地方都标在代码后面了 Ext ... -
Ext常用的知识点(二)--panel和window
2011-02-09 01:16 15481、Panel 很容易就可以做写出一个panel v ... -
Ext常用的知识点(一)--弹出消息
2011-02-08 21:38 1390首先,要写Extjs,建议大家用一个工具spket。 ... -
Extjs复习笔记(二十)-- tree和grid结合
2010-11-07 12:20 1611让tree和grid结合起来 相关内容之前大都讲过,这里就不 ... -
Extjs复习笔记(十九)-- XML作为tree的数据源
2010-11-07 11:52 2674用XML来作为tree的数据源 所有文件都上传了 ... -
Extjs复习笔记(十八)-- TreePanel
2010-11-07 11:09 1312Grid这一块暂时就讲到这。这一节开始就是tree的相关内容了 ... -
Extjs复习笔记(十七)-- 给grid里面的内容分组
2010-11-07 03:11 2007给grid里面的内容分组。 Ext.onReady(fun ... -
Extjs复习笔记(十五)-- JsonReader
2010-11-07 01:54 2715使用JsonReader来创建grid中的store (exa ... -
Extjs复习笔记(十四)-- XmlReader
2010-11-05 13:48 2382读取XML文件来构造grid 先了解一个函数:Ext.dat ... -
Extjs复习笔记(十三)-- GridPanel
2010-11-05 03:11 1692这一节开始,复习grid,博大精深呀! 拿官网的例子来 ... -
Extjs复习笔记(十二)--form验证
2010-11-04 23:37 1431验证。。。 1、不允许 ... -
Extjs复习笔记(十一)--换肤
2010-11-04 21:48 1305换肤功能 首先写一个 ... -
Extjs复习笔记(十)-- 网页主框架
2010-11-04 14:58 1048主界面的雏形: <!DOCTYPE html ... -
Extjs复习笔记(九)-- 加载等待
2010-11-04 13:29 2130登陆时的加载状态: <style type=&qu ... -
Extjs复习笔记(八)--登陆框
2010-11-03 02:33 1779之前有一篇博客展示了一个图书管理系统,接下来的几篇博客将会解析 ... -
Ext图书管理系统
2010-10-31 10:17 1900其实这一篇日志写很久了,由于近期项目演示的需要,我把它转到这边 ... -
Extjs复习笔记(七)-- ComboBox的添加、修改
2010-10-31 02:09 2601ComboBox的测试,有几个方法没写完整,有待之后解决。。。 ... -
Extjs复习笔记(六)--完整的浮动窗口
2010-10-30 03:30 3347前面搞了这么久的基础,下面该来做这个界面了: 这是一个浮动窗 ...
相关推荐
这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...
在"Extjs复习笔记(二十)-- tree和grid结合"这篇博文中,博主探讨了如何在EXTJS中实现树形视图(Tree)与网格视图(Grid)的融合。 Tree组件在EXTJS中通常用于显示具有层级关系的数据,例如文件系统、组织架构等。...
ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...
本篇复习笔记将聚焦于EXTJS Grid中的一个重要特性——内容分组,帮助你深入理解如何实现这一功能。 内容分组在EXTJS Grid中允许你将数据按照特定字段进行分类,这样可以更清晰地组织和展示数据。这在处理大量数据时...
NULL 博文链接:https://lucky16.iteye.com/blog/1490278
一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa
Extjs4.0学习笔记,以下是部分介绍: xtjs4,创建Ext组件有了新的方式,就是Ext.create(....),而且可以使用动态...ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(十)---ExtJS4图片验证码的实现
url: 'user-grid-data.action', // Struts2 action调用 reader: 'json' }, autoLoad: true }); // 定义Grid var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ {header: 'ID', dataIndex...
语言程序设计资料:ExtJs学习笔记-2积分.doc
在本篇ExtJS复习笔记中,我们聚焦于TreePanel组件,它是ExtJS库中的一个核心组件,用于构建可扩展的树形结构数据视图。TreePanel不仅提供了展示层级关系的数据模型,还支持交互操作,如节点的选择、展开与折叠等。在...
ExtJS快速入门--传智播客--蔡世友
在EXTJS框架中,换肤是一项重要的功能,它允许开发者根据用户需求或品牌风格改变应用程序的外观和感觉。本文将深入探讨EXTJS的换肤机制,以及如何利用提供的主题CSS文件实现这一特性。 EXTJS是一个强大的JavaScript...
4. **数据绑定**:阐述ExtJS的数据模型(Store)和数据显示组件(Grid、Tree)之间的数据绑定机制,包括XML、JSON数据源的加载。 5. **表单元素**:深入探讨表单(Form)的创建,包括各种表单字段(TextField、...
在“Extjs复习笔记(十五)-- JsonReader”这篇博文中,博主探讨了ExtJS中的JsonReader,这是数据绑定和JSON数据解析的关键部分。 JsonReader是ExtJS数据包(Ext.data)的一部分,用于从服务器获取JSON格式的数据,...
EXTJS开发包ext-3.2.0 EXTJS开发包ext-3.2.0
ExtJS4学习笔记(九)---ExtJS4 EditGrid(可编辑的Grid) ExtJS4学习笔记(二)---HBox的使用 ExtJS4学习笔记(五)---Grid分页 ExtJS4学习笔记(八)---Grid多选 全选 ExtJS4学习笔记(六)---多表头Grid ExtJS4学习笔记(十)--...
ext基本的控件例子ext基本的控件例子ext基本的控件例子ext基本的控件例子
ExtJS Grid是一个强大的数据展示组件,它允许用户以表格的形式查看和操作大量数据。在实际应用中,数据过滤是常见的需求,以便用户能快速定位到感兴趣的信息。本篇将深入探讨ExtJS Grid的过滤操作,以及如何动态地对...
extjs-cmd 脚手架安装包2 extjs-cmd 脚手架安装包3 extjs-cmd 脚手架安装包4