Extjs 项目中常用的小技巧--设置 Ext.data.Store 传参的请求方式
小编:管理员 961阅读 2022.09.07
1.extjs 给怎么给panel设背景色
设置bodyStyle:'background:#ffc;padding:10px;',
var resultsPanel = Ext.create('Ext.panel.Panel', { title: 'Results', width: 600, height: 400, renderTo: Ext.getBody(), bodyStyle: 'background:#ffc; padding:10px;', layout: { type: 'vbox', // Arrange child items vertically align: 'stretch', // Each takes up full width padding: 5 }, items: [{ // Results grid specified as a config object with an xtype of 'grid' xtype: 'grid', columns: [{header: 'Column One'}], // One header just for show. There's no data, store: Ext.create('Ext.data.ArrayStore', {}), // A dummy empty data store flex: 1 // Use 1/3 of Container's height (hint to Box layout) }, { xtype: 'splitter' // A splitter between the two child items }, { // Details Panel specified as a config object (no xtype defaults to 'panel'). title: 'Details', bodyPadding: 10, items: [{ fieldLabel: 'Data item', xtype: 'textfield' }], // An array of form fields flex: 2 // Use 2/3 of Container's height (hint to Box layout) }] });复制
2. Extjs4.0 设置 Ext.data.Store 传参的请求方式
var Store = Ext.create('Ext.data.Store', { pageSize: pageSize, model: 'Ext.data.Model名称', autoLoad: false, proxy: { type: 'ajax', url: '请求路径', getMethod: function(){ return 'POST'; },//亮点,设置请求方式,默认为GET reader: { type: 'json', root: 'Data', totalProperty: 'totalCount' } }, listeners: { 'beforeload': function (store, op, options) { var params = { //参数 }; Ext.apply(store.proxy.extraParams, params); } } });复制
3.ExtJS grid 带参数查询分页 store 传额外参数解决办法
在store的beforeload事件里面重写store.proxy.extraParams,添加新参数
就不必每次都手动的添加参数
store.on('beforeload', function (store, options) { var new_params = { name: Ext.getCmp('search').getValue() }; Ext.apply(store.proxy.extraParams, new_params); // alert('beforeload'); }); 在Extjs3 中的 store.on('beforeload', function () { store.baseParams = { name: '5555555', intss: '666666666' }; });复制
下面给出完整的代码。原理很简单,将搜索条件放在store的baseParams中,每次加载都赋值。
只是需要强制赋值,因为默认的pagetoolbar只会把start、limit、page、sort、dir传递给store。
var store = new Ext.data.Store({ pageSize: GridPageSize, model: 'Master', autoLoad: false, proxy: { type: 'ajax', url: '/master/GetMasterData', reader: { type: 'json', root: 'data', totalProperty: 'totalCount' } }, fields: [ { name: 'Id' }, { name: 'Master_Name' } //排序 sorters: [{ property: 'Master_Name', direction: 'DESC' }] }); store.on('beforeload', function (store, options) { var new_params = { name: Ext.getCmp('search').getValue() }; Ext.apply(store.proxy.extraParams, new_params); // alert('beforeload'); }); store.load({ params: { start: 0, limit: GridPageSize } })复制
相关推荐
- ExtJs七(ExtJs Mvc创建ViewPort) 前言在4.1的时候,要先创建一个扩展于Ext.app.Application的类,然后用create创建它的实例来开始应用程序的。而在4.1.1,则可直接调用application方法开始执行应用程序,简化了。调用application方法,其参数是一个配置对象,主要配置项有以下三个:name:用来…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…