Ext3.4 带查询form的grid封装
来源:互联网 发布:清迈打车软件 编辑:程序博客网 时间:2024/06/08 05:53
之前用EXT都是很零散,去API中找他的example,到最后发现,一个一个是相当独立的模块,很多重复的东西,自己没有把相同的东西封装过,现在尝试封装了一下。
下面代码的功能是创建一个表格,然后上面有个条件查询的功能,根据条件,查询出不同的数据反应在表格中。
查询表格的searchForm.js代码
Ext.ns("SearchFormPanle");SearchFormPanle = Ext.extend(Ext.Panel, {searchFormPanel : null,//store : null,//comboBoxData : null,constructor : function(b) {Ext.applyIf(this, b);this.initUI();SearchFormPanle.superclass.constructor.call(this, {id : "SearchFormPanle",iconCls : "menu-onlinedoc",region : "center",items : [this.searchFormPanel]});},initUI : function() {//将传过来的gridStore赋给定义的全局变量store,以方便后面调用,//在此,传递的参数名不能与此处定义的全局变量同名,否则他不知道给本地的全局变量赋哪一个值,出现没定义的情况var ssstore = this.gridStore;var comboData = this.data;var comboFirst = this.dataFirstvar searchCombo = new Ext.form.ComboBox({ id: 'searchType', name: "searchType", typeAhead: true, triggerAction: 'all', lazyRender: true, width: 80, forceSelection : true, mode: 'local', displayField:'displayText', listeners:{ render:function(r){ r.setValue(comboFirst) } }, editable: false, store: new Ext.data.ArrayStore({ id: 0, fields: [ 'searchType', 'displayText' ], data: comboData }), selectOnFocus : true });this.searchFormPanel = new Ext.form.FormPanel({region : "north",title: '条件查询', height: 60, labelWidth: 60, defaultType: 'textfield', items: [{ xtype: 'compositefield', fieldLabel: '查询方式', msgTarget: 'side', collapsible: true, items: [ searchCombo, {xtype: 'textfield', flex : 1, id : 'name', name: 'name', width: 200, emptyText: '输入全称或关键字'},{xtype:'button',text: '查询', width: 60,handler: function() {var name = Ext.getCmp('name').getValue();var searchType = Ext.getCmp('searchType').getValue();ssstore.load({params:{name:name,searchType:searchType}});}}] }] });}});
调用的panel.js代码
function getRootPath(){var curWwwPath=window.document.location.href; var pathName=window.document.location.pathname; var pos=curWwwPath.indexOf(pathName); var localhostPaht=curWwwPath.substring(0,pos); var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); return(projectName);}Ext.onReady(function(){ var store = new Ext.data.GroupingStore({autoDestroy: true, url: getRootPath()+'/materialPlan/reportCreateJSON',reader : new Ext.data.JsonReader({ root: 'items',totalProperty: 'results',fields:[{name : "materialId",mapping : "materialId",type : 'int'}, {name : "name",mapping : "name"}, {name : "materialType",mapping : "materialType",type : 'string'}, {name : "resourceType",mapping : "resourceType",type : 'string'}, {name : "drType",mapping : "drType",type : 'string'}, {name : "reportMaterialNumber",mapping : "reportMaterialNumber",type : 'int'}, {name : "unit",mapping : "unit",type : 'string'}, {name : "reportPrice",mapping : "reportPrice",type : 'float'}, {name : "reportStoreType",mapping : "reportStoreType",type : 'string'}, {name : "detail",mapping : "detail",type : 'string'} ]}),sortInfo : {field : 'name',direction : 'ASC'} });var fm = Ext.form;var editor = new Ext.ux.grid.RowEditor({ saveText: '申请'});editor.on({scope: this,afteredit: function(roweditor, changes, record, rowIndex) { var data = store.getAt(rowIndex).data; Ext.Ajax.request({ url:getRootPath()+'/materialPlan/saveReportNDRCCreateGrid', method: record.phantom ? 'POST' : 'PUT', params: { materialId : data.materialId, reportMaterialNumber : data.reportMaterialNumber, reportPrice : data.reportPrice, reportStoreType : data.reportStoreType, detail : data.detail }, success: function() {Ext.Msg.alert("提示","修改成功!"); }, failure: function(response){Ext.Msg.alert("提示","修改失败!"); } });}});var combo = new fm.ComboBox({ typeAhead: true, triggerAction: 'all', lazyRender: true, forceSelection : true, mode: 'local', displayField:'displayText', store: new Ext.data.ArrayStore({ id: 0, fields: [ 'reportStoreType', 'displayText' ], data: [[1, '实物储备'], [2, '协议储备'], [3, '产能储备']] }), selectOnFocus : true, allowBlank : false })var editGrid = new Ext.grid.GridPanel({store:store,height:400,width: 800,titleCollapse:true, autoExpandColumn: 'materialId',plugins: [editor],renderTo: 'reportNDRCCreate',title: '发改委申报年度物资储备库',clicksToEdit: 1,margins: '0 5 5 5', view: new Ext.grid.GroupingView({ markDirty: false }), columns : [new Ext.grid.RowNumberer(),{ id : 'materialId', header : 'materialId', dataIndex : 'materialId', width : 100, hidden : true, sortable : true },{ header : '物资名称', dataIndex : 'name', width : 80, sortable : true },{ header : '物资标识', dataIndex : 'resourceType', width : 100, sortable : true }, { header : '物资类型', dataIndex : 'drType', width: 80, sortable: true }, { header : '申报数量', dataIndex : 'reportMaterialNumber', width : 80, editor : { xtype : 'textfield' } }, { header : '单位', dataIndex : 'unit', width : 30 }, { header : '申报价格(元)', dataIndex : 'reportPrice', width : 80, editor : { xtype: 'numberfield', allowBlank: false, minValue: 0, maxValue: 150000 } },{ header : '储备方式', dataIndex : 'reportStoreType', width : 100, editor: combo },{ header : '备注', dataIndex : 'detail', width : 100, editor : { xtype : 'textfield'}}], bbar: new Ext.PagingToolbar({ pageSize: 10, store: store, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录", items:[ '-' ] })});// store.load();store.load({params:{start:0,limit:10}});var myData = [[1, '物资名称'], [2, '物资标识'], [3, '物资类型'], [4, '物资分类']];var dataFirst = '物资名称';var seaForm=new SearchFormPanle({gridStore:store,data:myData,dataFirst:dataFirst});var view = new Ext.Viewport({layout:'border',items: [{region : 'north',margins : '-5 0 0 -2',layout : 'form',width: 800,height: 60,items : [ seaForm ]},{border : false,region : "center",items : [ editGrid ]}]});});
红色代码就是将前面searchForm封装好的调用过来
在页面引入这两个JS文件即可。
- Ext3.4 带查询form的grid封装
- Ext3.1.1(四)grid.GridPanel+FormPanel+PagingToolBar 完成基础的表格展示带查询和分页
- Extjs grid带分页的查询
- ExtJS4 Grid 带参数的查询
- ExtJS grid中带查询参数的自动翻页控件
- ExtJS 4 grid 带参数 查询 分页 store beforeload 解决办法
- ExtJS 4 grid 带参数 查询 分页 store beforeload 解决办法
- ExtJS 4 grid 带参数 查询 分页 store beforeload 解决办法
- ExtJS 4 grid 带参数 查询 分页 store beforeload 解决办法
- ExtJS 4 grid 带参数 查询 分页 store beforeload 解决办法
- ExtJS 4 grid 带参数 查询 分页 store beforeload 解决办法
- EXT3.4关于Grid锁定指定列固定多选框的实现
- 封装的Ext Grid
- ext3 简单grid 页面
- EXT3.0 ColumnTree带Checkbox的示例
- 关于Ext3.0中按条件查询并重新加载Grid中的数据的实现过程及store.load的分析
- Ext3.2 布局——一个完整的form 表单
- Form Grid
- Ajax无刷新分页
- 带OnMouseUp、OnMouseDown、OnMouseMove事件的TrackBar控件
- js简单实现div遮罩层
- opencv里面图像通道问题
- 初识Hadoop
- Ext3.4 带查询form的grid封装
- struts2拦截器
- BitmapFactory.decodeResource 获取图片宽与高
- css设置ul中li不能实现左对齐(针对非IE浏览器)
- Struts2基于注解的Action配置
- MIPI-技术浅谈
- 使用javac编译java文件和使用javah生成C/C++头文件 遇到找不到类的问题
- 设置progressbar进度条颜色
- 张西雨 你妹的——社会化媒体下个人信息安全的思考