某某茶叶有限公司欢迎您!
金沙棋牌在线 > 服务器&运维 > Ext对基本类型的扩展 ext,extjs,format_extjs_脚本之家

Ext对基本类型的扩展 ext,extjs,format_extjs_脚本之家

时间:2019-11-27 20:39

1. Array indexOf:Number 方法 remove:Array 方法 2. Date Javascript对日期时间的操作是不太方便的,而Ext在此基本上加入了比较多的扩展。比较重要的有: add(String interval,Number value):Date 方法 其中interval表示要加入的周期,有效的字符串为 ms--------表示毫秒 s-----------表示秒 mi---------表示分钟 h----------表示小时 d---------表示天 mo--------表示月 y---------表示年 这个方法是通过封装Date.setxxx方法实现的。 另外,该函数不会改变原始日期的值,则是返回一个新的日期对象作为结果。 format:String 方法 基本上,它的用法类似于.net中的日期格式化函数。具体的格式请参见Ext的API。通过阅读它的源码,我发现第次调用该函数时,它首先判断指定的格式是否曾经调用过,如果没有调用过,则为该格式动态生成一个相应的格式化函数,并缓存起来。这样做可以明显提高第二次调用的速度。 3. Function createCallback 方法 为函数生成回调用方法,这个函数怎么起作用呢? 复制代码 代码如下: function add{ return x+y; } var add2 = add.createCallback; createDelegate 方法 这个方法的作用和createCallback的作用基本相同,不同的地方在于它可以指定调用原始函数的上下文对象,而createCallback方法则始终使用window作为函数调用的上下文。 createInterceptor方法 这个方法的作用是为函数创建一个拦截器,在调用原始函数之前先调用fn,如果fn返回false,则不调用原始函数。scope参数指定了调用fn函数的上下文,如果未指定,则和原始函数的上下文相同或者为window对象。 createSequence( Function fn, [Object scope] ) 这个方法组合了原始函数和fn,最终的结果是先调用原始函数,然后再用同样的参数调用fn函数,最返的返回值是原始函数的返回值。 defer( Number millis, [Object scope], [Array args], [Boolean/Number appendArgs] ) 这个方法能延时调用原始函数。 复制代码 代码如下: var clock = function; alert(d.toLocaleTimeString; clock.defer; 4. Number constrain( Number min, Number max ) 不解释,你懂的。 5. string format( String string, String value1, String value2… ) : String 它的功能和.net中的格式化基本相同,但比较简单,不支持在{0:d}这样的写法,只支持{0}这样的写法。看了它的源代码,超简单。 复制代码 代码如下: format : function{ var args = Ext.toArray; return format.replace}/g, function{ return args[i]; }); } 基本上,这是一个很有用的函数,可以让我们少写拼写字符串的代码,那种代码真的很难看懂。 trim() : String 还算是有点用处,也不解释。

区别在于fly返回的是Element轻量级的,占用较少的内存,但是不保存对象的引用,每次使用都会改变先前的对象,而get则会缓存每次返回的Element对象,但是占用较多的内存。我们通过一个例子来说明二者的区别,同时看看Element给我们提供的强大功能。在我们项目中添加一个html页面,内容如下: 复制代码 代码如下:

本文件为:ext_editgrid_products.js,用来显示,编辑,删除products表的数据。复制代码 代码如下: var productsgrid; var productsstore; var productslimit = 25; //每页显示条数 var productsListPostUrl = "/management/procrequest/Proc_products.ashx?action=getlist"; var productsModifyPostUrl = "/management/procrequest/Proc_products.ashx?action=modify"; var productsDeletePostUrl = "/management/procrequest/Proc_products.ashx?action=del"; function initproductsGrid { Ext.menu.RangeMenu.prototype.icons = { gt: 'images/greater_then.png', lt: 'images/less_then.png', eq: 'images/equals.png' }; Ext.grid.filter.StringFilter.prototype.icon = 'images/find.png'; Ext.QuickTips.init(); function formatDate { return value ? value.dateFormat : ''; }; var fm = Ext.form; var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel([ sm, { id:'productId', header: '产品编号', dataIndex: 'productId', sortable: true, width:70, editor: new fm.NumberField({ allowBlank: false, allowNegative: false }) }, { header: '产品名称', dataIndex: 'productName', sortable: true, width:120, editor: new fm.TextField({ allowBlank: false, allowNegative: false }) }, { header: '金额', dataIndex: 'money', sortable: true, width:120, editor: new fm.NumberField({ allowBlank: false, allowNegative: false }) }, { header: '地址', dataIndex: 'address', sortable: true, width:120, editor: new fm.TextField({ allowBlank: false, allowNegative: false }) }, { header: '电话', dataIndex: 'tel', sortable: true, width:120, editor: new fm.TextField({ allowBlank: false, allowNegative: false }) }, { header: '备注', dataIndex: 'remark', sortable: false, width:550, editor: new fm.myHtmlEditor({ allowBlank: false, allowNegative: false }) }, { header: '端口', dataIndex: 'port', sortable: true, width:70, editor: new fm.NumberField({ allowBlank: false, allowNegative: false }) } ]); cm.defaultSortable = true; /* var Plant = Ext.data.Record.create; */ productsstore = new Ext.data.JsonStore({ root: 'list', totalProperty: 'totalCount', idProperty: 'productId', remoteSort: true, fields: [ {name: 'productId' },{name: 'productName' },{name: 'money' },{name: 'address' },{name: 'tel' },{name: 'remark' },{name: 'port' } ], proxy: new Ext.data.ScriptTagProxy({ url: productsListPostUrl }) }); productsstore.setDefaultSort; var filters = new Ext.grid.GridFilters({ filters: [ { type: 'string', dataIndex: 'productId' }, { type: 'string', dataIndex: 'productName' }, { type: 'string', dataIndex: 'money' }, { type: 'string', dataIndex: 'address' }, { type: 'string', dataIndex: 'tel' }, { type: 'string', dataIndex: 'remark' }, { type: 'string', dataIndex: 'port' } ] }); var pagingBar = new Ext.PagingToolbar({ pageSize: productslimit, store: productsstore, displayInfo: true, displayMsg: '第 {0} - {1} 条记录,总共 {2} 条记录', emptyMsg: "没有记录" }); productsgrid = new Ext.grid.EditorGridPanel({ store: productsstore, cm: cm, sm: sm, bodyStyle: 'width:100%', autoWidth: true, height: 620, renderTo: containerid, autoExpandColumn: 'productId', frame: true, clicksToEdit: 2, plugins: [filters], loadMask: true, enableTabScroll: true, tbar: [{ text: '添加', tooltip: '添加新记录', iconCls: 'add', handler:function(){ openTab("addproducts", "添加products", null, initAddproductsForm); } }, '-', { text: '编辑', tooltip: '编辑选中记录', iconCls: 'option', handler: function() { var selectedRow = productsgrid.getSelectionModel; if { var obj = selectedRow[0]; if return; var id = obj.get; openTab("editproducts", "编辑products", null, initAddproductsForm, id, obj); } } }, '-', { text: '删除', tooltip: '删除选中记录', iconCls: 'remove', handler: function() { var selectedRow = productsgrid.getSelectionModel; Ext.MessageBox.confirm('Confirm', '你确定要删除你所选定的' + selectedRow.length + "项吗?", function { if { if { for (var i = 0; i < selectedRow.length; i++) { var obj = selectedRow[i]; var id = obj.get; productsstore.remove; $.ajax({ type: "POST", url: productsDeletePostUrl, dataType: "json", data: "recordsuccess") productsstore.reload; } }], bbar: pagingBar }); productsstore.load({ params: { start: 0, limit: productslimit} }); productsgrid.on("afteredit", afterEdit, productsgrid); function afterEdit { var r = obj.record; //获取被修改的行 var fildname = obj.field; //获取被修改的列 var id = r.get; var fildval = obj.value; $.ajax({ type: "POST", url: productsModifyPostUrl, dataType: "json", data: { action: 'modify', fildname: fildname, id: id, fildval: fildval }, complete: function() { }, success: function; } } 本文件为ext_add_products.js,用来添加或者编辑products表。复制代码 代码如下:var productsAddPostUrl = "/management/procrequest/Proc_products.ashx?action=add"; var productsUpdatePostUrl = "/management/procrequest/Proc_products.ashx?action=update"; function initAddproductsForm(containerid, idstr, rowObj) { if idstr = containerid; var productsForm = new Ext.FormPanel({ labelWidth: 100, // label settings here cascade unless overridden url: productsAddPostUrl, frame: true, bodyStyle: 'padding:5px 5px 0', autoWidth: true, defaults: { width: '350' }, defaultType: 'textfield', renderTo: containerid, items: [ { xtype: 'hidden', name: 'productId', id: 'productId' + idstr, value: null == rowObj ? null : rowObj.get, readOnly: true } , { xtype: 'textfield', fieldLabel: '商品名称', height: 20, name: 'productName', allowBlank: false, value: null == rowObj ? null : rowObj.get, id: 'productName' + idstr } , { xtype: 'numberfield', fieldLabel: '价格', height: 20, name: 'money', allowBlank: false, value: null == rowObj ? null : rowObj.get, id: 'money' + idstr } , { xtype: 'textfield', fieldLabel: '地址', height: 20, name: 'address', value: null == rowObj ? null : rowObj.get, id: 'address' + idstr } , { xtype: 'textfield', fieldLabel: '电话', height: 20, name: 'tel', value: null == rowObj ? null : rowObj.get, id: 'tel' + idstr } , { xtype: 'myhtmleditor', fieldLabel: '备注', height: 400, width: 600, name: 'remark', value: null == rowObj ? null : rowObj.get, id: 'remark' + idstr } , { xtype: 'numberfield', fieldLabel: '端口', height: 20, name: 'port', value: null == rowObj ? null : rowObj.get, id: 'port' + idstr } ], buttons: [{ text: '保存', handler: function() { if (!productsForm.form.isValid return; productsForm.form.submit({ meghod: 'post', url: !isNaN && parseInt > 0 ? productsUpdatePostUrl : productsAddPostUrl, waitMsg: '正在保存,请稍候...', success: function() { Ext.MessageBox.show({ title: '保存结果', msg: '保存成功', buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.INFO }); }, failure: function() { Ext.MessageBox.show({ title: '保存结果', msg: '保存失败', buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.ERROR }); } }); } }] }); }