首页
网站首页
公司简介
资讯中心
推荐内容
返回顶部
关于Store的一些操作_extjs_脚本之家,的几种样式使用介绍_extjs_脚本之家
发布时间:2019-12-28 20:38
浏览次数:

简单表格

1、Ext.grid.GridPanel 主要配置项: store:表格的数据集 columns:表格列模式的配置数组,可自动创建ColumnModel列模式 autoExpandColumn:自动充满表格未用空间的列,参数为列id,该id不能为0 stripeRows:表格是否隔行换色,默认为false cm、colModel:表格的列模式,渲染表格时必须设置该配置项 sm、selModel:表格的选择模式,默认为Ext.grid.RowSelectionModel enableHdMenu:是否显示表头的上下文菜单,默认为true enableColumnHide:是否允许通过标题中的上下文菜单隐藏列,默认为true loadMask:是否在加载数据时显示遮罩效果,默认为false view:表格视图,默认为Ext.grid.GridView viewConfig:表格视图的配置对象 autoExpandMax:自动扩充列的最大宽度,默认为1000 autoExpandMin:自动扩充列的最小宽度,默认为50 columnLines:是否显示列分割线,默认为false disableSelection:是否禁止行选择,默认为false enableColumnMove:是否允许拖放列,默认为true enableColumnResize:是否允许改变列宽,默认为true hideHeaders:是否隐藏表头,默认为false maxHeight:最大高度 minColumnWidth:最小列宽,默认为25 trackMouseOver:是否高亮显示鼠标所在的行,默认为true 主要方法: getColumnModel():取得列模式 getSelectionModel:取得数据集 getView():取得视图对象 reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel ):使用一个新的数据集和列模式重新配置表格组件 2、Ext.grid.Column 主要配置项: id:列id header:表头文字 dataIndex:设置列与数据集中数据记录的对应关系,值为数据记录中的字段名称。如果没有设置该项则使用列索引与数据记录中字段的索引进行对应 width:列宽 align:列数据的对齐方式 hidden:是否隐藏列,默认为false fixed:是否固定列宽,默认为false menuDisabled:是否禁用列的上下文菜单,默认为false resizable:是否允许改变列宽,默认为true sortable:是否允许排序,默认为true renderer:设置列的自定义单元格渲染函数 传入函数的参数有: value:数据的原始值 metadata:元数据对象,用于设置单元格的样式和属性,该对象包含的属性有: css:应用到单元格TD元素上的样式名称 attr:一个HTML属性定义字符串,例如'style="color:blue"' record:当前数据记录对象 rowIndex:单元格的行索引 colIndex:单元格的列索引 store:数据集对象 xtype:列渲染器类型,默认为gridcolumn,其它可选值有booleancolumn、numbercolumn、datecolumn、 templatecolumn等 editable:是否可编辑,默认为true editor:编辑器 groupName: emptyGroupText: groupable: 3、Ext.grid.ColumnModel 主要配置项: columns:字段数组 defaultSortable:是否进行默认排序,默认为false defaultWidth:默认宽度 主要方法: findColumnIndex:根据给定的dataIndex查找列索引 getColumnById:取得指定id对应的列 getColumnCount( Boolean visibleOnly ):取得列总数 getColumnHeader:取得列的表头 getColumnId:取得列id getDataIndex:取得列对应的数据字段名 getIndexById:取得列索引 getTotalWidth( Boolean includeHidden ) isCellEditable( Number colIndex, Number rowIndex ) isFixed() isHidden setColumnHeader( Number col, String header ) setColumnWidth( Number col, Number width, Boolean suppressEvent ) setDataIndex( Number col, String dataIndex ) setEditable( Number col, Boolean editable ) setEditor( Number col, Object editor ) setHidden( Number colIndex, Boolean hidden ) setRenderer( Number col, Function fn ) 4、Ext.grid.AbstractSelectionModel 主要方法: lock:解锁选择区域 isLocked():当前选择区域是否被锁定 5、Ext.grid.CellSelectionModel 主要方法: clearSelections( Boolean preventNotify ):清除选择区域 getSelectedCell():取得当前选择的单元格,返回一数组,其格式:[rowIndex, colIndex] hasSelection():当前是否有选择区域 select( Number rowIndex, Number colIndex, [Boolean preventViewNotify], [Boolean preventFocus], [Ext.data.Record r] ):选择指定单元格 6、Ext.grid.RowSelectionModel 主要配置项: singleSelect:是否单选模式,默认为false,即可以选择多条数据 主要方法: clearSelections:清除所有选择区域 deselectRange( Number startRow, Number endRow ):取消范围内的行选择 deselectRow( Number row, [Boolean preventViewNotify] ):取消指定行的选择状态 each( Function fn, [Object scope] ):遍历所有选择行,并调用指定函数。当前被选行将传入该函数中 getCount():得到选择的总行数 getSelected():得到第一个被选记录 getSelections():得到所有被选记录的数组 hasNext():判断当前被选行之后是否还有记录可以选择 hasPrevious():判断当前被选行之前是否还有记录可以选择 hasSelection():是否已选择了数据 isIdSelected:判断指定id的记录是否被选择 isSelected( Number/Record index ):判断指定记录或记录索引的数据是否被选择 selectAll():选择所有行 selectFirstRow():选择第一行 selectLastRow( [Boolean keepExisting] ):选择最后行 keepExisting:是否保持已有的选择 selectNext( [Boolean keepExisting] ):选择当前选择行的下一行 selectPrevious( [Boolean keepExisting] ):选择当前选择行的上一行 selectRange( Number startRow, Number endRow, [Boolean keepExisting] ):选择范围内的所有行 selectRecords( Array records, [Boolean keepExisting] ):选择一组指定记录 selectRow( Number row, [Boolean keepExisting], [Boolean preventViewNotify] ):选择一行 row:行索引 selectRows( Array rows, [Boolean keepExisting] ):选择多行 rows:行索引数组 7、Ext.grid.CheckboxSelectionModel 主要配置项: singleSelect:是否单选模式,默认为false,即可以选择多条数据 checkOnly:是否只能通过点击checkbox列进行选择,默认为false sortable:是否允许checkbox列排序,默认为false width:checkbox列的宽度,默认为20 8、Ext.grid.RowNumberer 主要配置项: header:行号列表头显示的内容 width:列宽,默认为23 9、Ext.grid.GridView 主要配置项: enableRowBody:是否包含行体 sortAscText:表格标题菜单中升序的文字描述 sortDescText:表格标题菜单中降序的文字描述 columnsText:表格标题菜单中列对应的文字描述 autoFill:是否自动扩展列以充满整个表格,默认为false forceFit:是否强制调整表格列宽以适用表格的整体宽度,防止出现水平滚动条,默认为false 主要方法: focusCell( Number row, Number col ):将焦点移到指定单元格 focusRow:将焦点移动指定行 getCell( Number row, Number col ):取得指定单元格对应的td元素 getHeaderCell:取得指定表头对应的td元素 getRow:取得指定行对应的tr元素 getRowClass( Record record, Number index, Object rowParams, Store store ):得到附加到表格行上的样式名 record:当前行的数据记录对象 index:当前行的索引 rowParams:渲染时传入到行模板中的配置对象,通过它可以为行体定制样式,该对象只在enableRowBody为true时才生效,可能的属性 如下: body:渲染到行体中的HTML代码片段 bodyStyle:应用到行体tr元素style属性的字符串 cols:应用到行体td元素colspan属性的值,默认为总列数 store:表格数据集 refresh( [Boolean headersToo] ):刷新表格组件 scrollToTop():滚动表格到顶端 实战1: 让gridpanel的滚动条自动滚动到最后一条记录: grid.getView().focusRow(vehiclePassInfoGrid.getStore; 2:清除gridpanel中有行被选择的状态: grid.getSelectionModel;

1、关于加载和回调的问题 ExtJs的Store在加载时候一般是延迟加载的,这时候Grid就会先出现一片空白,等加载完成后才出现数据;因此,我们需要给它添加一个提示信息! 但是Store却没有waitMsg属性。 解决方案: 1.给store添加监听器,监听beforeload事件,加载前弹出提示框,加载完成后关闭提示框 2.callback为load的回调函数,在加载完成后执行,因此关闭提示框由它完成; 3.一定要给store的reload方法也添加callback函数,已关闭提示框 例子主要代码如下: 复制代码 代码如下: varmsgTip; // 一定要定义在使用前,且定义为全局变量 var reportStore=new Ext.data.Store({ proxy:reportProxy, reader:reportReader, listeners:{ beforeload:function(){ msgTip = Ext.MessageBox.show({ title:'提示', width : 250, msg:'页面报表统计信息刷新中,请稍后......' }); } } }); reportStore.load({ callback: function(records, options, success){ msgTip.hide; 注意:如果有调用reload来重新刷新页面,reload也要添加callback函数来关闭提示框 reportStore.reload({ callback: function(records, options, success){ msgTip.hide; --------以下为其他参数------ store.load({ params:{start:0,limit:20}, //参数 // callback是加载完毕时执行的回调函数,它包含3个参数:records参数表示获得的数据, // options表示执行load()时传递的参数,success表示是否加载成功。 callback: function(records, options, success){ Ext.Msg.alert; }, scope: store, //Scope用来指定回调函数执行时的作用域 add: false //Add为true时,load()得到的数据会添加在原来的store数据的末尾, //否则会先清除之前的数据,再将得到的数据添加到store中 }); 2、从一个store添加符合某条件记录给另一个store中 复制代码 代码如下: var MyDocnumStore_Load = function{ //var index = 0; store.each { if(record.data.PlanCarNo != '' ) { //column_name 替换成你的列名, '1' 替换成你的值 if (record.data.Docnum != _rec.get{ var _TmpStr = record.data.UseDate+'----->'+record.data.PlanCarNo; myDocnumStore.add({ 'UpDocnum':record.data.Docnum ,'DocnumDesc':_TmpStr ,'UseDate':record.data.UseDate ,'PlanCarNo':record.data.PlanCarNo }); } } }) myDocnumStore.sort; }; MyDocnumStore_Load; //载入可拼车列表;

文档就绪函数$.ready{--- jQuery functions go here ----});这是为了防止文档在完全加载之前运行 jQuery 代码。如果在文档没有完全加载之前就运行函数,操作可能失败。(试图隐藏一个不存在的元素;获得未完全加载的图像的大小)

排序,显示某列,读取本地数据

把所有 jQuery 代码置于事件处理函数中把所有事件处理函数置于文档就绪事件处理器中

复制代码 代码如下://本地数据 var datas = [ ['1', 'gao', 'man'], ['2', 'gao', 'man'], ['3', 'gao', 'man'] ]; //创建面板 Ext.create('Ext.grid.Panel', { title: 'easy grid', width: 400, height: 300, renderTo: Ext.getBody(), frame: true, viewConfig: { forceFit: true, stripRows: true }, store: {//配置数据代理 fields: ['id', 'name', 'gender'], proxy: { type: 'memory', data: datas, reader: 'array' //数据读取器为 数据读取 }, autoLoad: true }, columns: [{ //自定义列信息 header: 'id', width: 30, dataIndex: 'id', //绑定fields中得字段 sortable: true }, { header: 'name', width: 80, dataIndex: 'name', sortable: true }, { header: 'gender', width: 80, dataIndex: 'gender', sortable: true } ] }) 表格列:行号, bool行转成是否,日期格式化输出, number数据类型格式化输出,Action列

hide/show/toogle$.hide;$.show;$.toggle;可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。可选的 callback 参数是隐藏或显示或切换完成后所执行的函数名称。

代码;复制代码 代码如下:Ext.tip.QuickTipManager.init(); Ext.create('Ext.data.Store', { storeId: 'sampleStore', fields: [{ name: 'framework', type: 'string' }, { name: 'rocks', type: 'boolean' }, { name: 'volume', type: 'number' }, { name: 'topday', type: 'date' }, { name: 'change', type: 'number' }, { name: 'date', type: 'date' }, { name: 'price', type: 'number' } ], data: { 'items': [{ "framework": "Ext JS 1", "rocks": true, "symbol": "goog", "date": '2011/04/22', "change": 0.8997, "volume": 3053782, "topday": '04/11/2010', "price": 1000.23 }, { "framework": "Ext JS 2", "rocks": true, "symbol": "goog", "date": '2011/04/22', "change": 0.8997, "volume": 3053782, "topday": '04/11/2010', "price": 1000.23 }, { "framework": "Ext JS 3", "rocks": true, "symbol": "goog", "date": '2011/04/22', "change": 0.8997, "volume": 3053782, "topday": '04/11/2010', "price": 1000.23 }] }, proxy: { type: 'memory', reader: { type: 'json', root: 'items' } } }); Ext.create('Ext.grid.Panel', { title: 'Boolean Column Demo', store: Ext.data.StoreManager.lookup, columns: [ Ext.create('Ext.grid.RowNumberer', { text: '行号', width: 40 }), { text: 'Framework', dataIndex: 'framework', width: 100 }, { xtype: 'booleancolumn', text: 'Rocks', trueText: '是', falseText: '否', dataIndex: 'rocks' }, { text: 'Date', dataIndex: 'date', xtype: 'datecolumn', format: 'Y年m月d日' }, { text: 'Change', dataIndex: 'change', xtype: 'numbercolumn', format: '0.000' }, { text: 'Volume', dataIndex: 'volume', xtype: 'numbercolumn', format: '0,000' }, { text: 'Top Day', dataIndex: 'topday', xtype: 'datecolumn', format: 'l' }, { text: 'Current Price', dataIndex: 'price', renderer: Ext.util.Format.usMoney }, { header: '操作', xtype: 'actioncolumn', //操作列 width: 100, items: [{ icon: 'e.gif', // 编辑图片地址 tooltip: ‘编辑', //鼠标over显示的文字 使用此功能,必须 Ext.tip.QuickTipManager.init(); handler: function (grid, rowIndex, colIndex) { var rec = grid.getStore; alert("Edit " + rec.get; } }, { icon: 'd.gif', tooltip: 'Delete', handler: function (grid, rowIndex, colIndex) { var rec = grid.getStore; alert("Terminate " + rec.get; } }] }, { } ], height: 200, width: 800, renderTo: Ext.getBody; 下面这个图是 单击 操作按钮触发的回调函数的详细信息.

jQuery 事件

下面演示 自定义 渲染函数

Event 函数

效果:

绑定函数至

复制代码 代码如下:Ext.tip.QuickTipManager.init(); function customFunction { if { metadata.style = 'color:red'; } return value; } Ext.create('Ext.data.Store', { storeId: 'sampleStore', fields: [ { name: 'custom', type: 'number' } ], data: { 'items': [{ "custom": 10 }, { "custom": 100 }, { "custom": 1000 }] }, proxy: { type: 'memory', reader: { type: 'json', root: 'items' } } }); Ext.create('Ext.grid.Panel', { title: 'Boolean Column Demo', store: Ext.data.StoreManager.lookup, columns: [ Ext.create('Ext.grid.RowNumberer', { text: '行号', width: 40 }), { text: 'custom', dataIndex: 'custom', renderer: customFunction //调用自定义函数 来渲染 } ], height: 200, width: 800, renderTo: Ext.getBody; 选择模式:Selection

$.ready将函数绑定到文档的就绪事件.click触发或将函数绑定到被选元素的点击事件$.dblclick触发或将函数绑定到被选元素的双击事件$.focus触发或将函数绑定到被选元素的获得焦点事件$.mouseover触发或将函数绑定到被选元素的鼠标悬停事件

选择模式分为三类:

jQuery Fading 方法:

1,行选择

通过 jQuery,您可以实现元素的淡入淡出效果。

2.单元格选择

jQuery 拥有下面四种 fade 方法:

3.复选框选择

fadeInfadeToggle()

友情链接: 网站地图
Copyright © 2015-2019 http://www.nflfreepicks.net. 新葡萄京娱乐场网址有限公司 版权所有