Ext.grid.GridPanel
* 创建GridPanel
1 创建数据对象store
var centerStore = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: '<c:out value="${path}"/>/marcInfo.htm?method=marcInfoQuery'
}),
reader: new Ext.data.JsonReader({
totalProperty: 'totalProperty',
root: 'marcInfoArr'
},
Ext.data.Record.create([
{name: 'marcNo',type: 'string'},
{name: 'marcName',type: 'string'},
{name: 'marcDesc',type: 'string'},
{name: 'marcSpec',type: 'string'},
{name: 'marcUnit',type: 'string'},
{name: 'lastPrice',type: 'float'},
{name: 'statusRmk',type: 'string'},
{name: 'marcKind',type: 'string'},
{name: 'createUser',type: 'string'},
{name: 'createDate',type: 'string'},
{name: 'modifyUser',type: 'string'},
{name: 'modifyDate',type: 'string'}
]))
});
centerStore.setDefaultSort('marcNo', 'asc');
2 创建数据行模型column model
var centerColModel = new Ext.grid.ColumnModel({
columns: [
new Ext.grid.RowNumberer(),//行数号
{header: "物料编码", width: 120, dataIndex: 'marcNo'},
{header: "物料描述", width: 200, dataIndex: 'marcDesc'},
{header: "物料规格", width: 200, dataIndex: 'marcSpec'},
{header: "品名", width: 120, dataIndex: 'marcName'},
{header: "单位", width: 80, dataIndex: 'marcUnit'},
{header: "最近采购价格", width: 100, dataIndex: 'lastPrice',
renderer: function(value, metaData, record, rowIndex, colIndex, store) {
if(value == 0){
return '';
}
return value+'元';
}
},
{header: "状态", width: 100, dataIndex: 'statusRmk',
renderer: function(value, metaData, record, rowIndex, colIndex, store) {
switch (value){
case '1': return '正常使用';
case '2': return '冻结状态';
case '3': return '删除';
}
return '';
}
},
{header: "物料类别", width: 100, dataIndex: 'marcKind',
renderer: function(value, metaData, record, rowIndex, colIndex, store) {
switch (value){
case '1': return '费用性物料';
case '2': return 'SAP物料';
}
return '';
}
},
{header: "创建者", width: 120, dataIndex: 'createUser'},
{header: "创建时间", width: 120, dataIndex: 'createDate' ,align: 'center'},
{header: "最后更改人", width: 120, dataIndex: 'modifyUser'},
{header: "最后更改时间", width: 120, dataIndex: 'modifyDate' ,align: 'center'}
],
defaults: {
sortable: true,
menuDisabled: false,
align: 'left'
}
});
3 创建 中央表格 GridPanel
var centerGrid = new Ext.grid.GridPanel({
id: 'centerGrid',
ds: centerStore,
border: false,
region: 'center',
stripeRows: true,
loadMask: {msg:'Loading……'},
colModel: centerColModel,
sm: new Ext.grid.RowSelectionModel({
singleSelect:true
}),
viewConfig: {
enableRowBody: true,
showPreview: false,
getRowClass: function (record,rowIndex,p,store){
if(this.showPreview){
p.body = '<p>'+record.data.description+'</p>';
return 'x-grid3-row-expanded';
}
return 'x-grid3-row-collapsed';
}
},
//分页工具栏
bbar: new Ext.PagingToolbar({
params: {
start: 0,
limit: 50
},
pageSize: 50,
store: centerStore,
displayInfo: true,
displayMsg: '显示数据从 第{0}条 - 第{1}条 共{2}条记录',
emptyMsg: '无数据显示!',
items: [
'-',
{
pressed: false,
enableToggle: false,
//text: 'Show Preview',
cls: 'x-btn-text-icon details',
toggleHandler: function(btn,pressed){
var view = centerGrid.getView();
view.showPreview = pressed;
view.refresh();
}
}
]
})
});
4 制定右键菜单:
var rightMenu = new Ext.menu.Menu({
id: 'defmenu',
style: {
overflow: 'visible' // For the Combo popup
},
items: [{
text: '修改',
handler: indexFun.update
}]
});
5 显示右键菜单:
centerGrid.addListener("contextmenu",function(e){
var target = e.getTarget();
e.preventDefault();
rightMenu.showAt(e.getXY());
var view = centerGrid.getView();
var rowIndex = view.findRowIndex(target);
centerGrid.getSelectionModel().selectRow(rowIndex);
}
);
6 设置基本参数:
centerGrid.addListener('beforeload',function(){
centerStore.setBaseParam("marcNo",marcNo.getValue());
centerStore.setBaseParam("marcDesc",marcDesc.getValue());
centerStore.setBaseParam("statusRmk",statusRmk.getValue());
centerStore.setBaseParam("marcKind",marcKind.getValue());
centerStore.setBaseParam("startDate",indexFun.getDateFieldFormatValue(startDate));
centerStore.setBaseParam("endDate",indexFun.getDateFieldFormatValue(endDate));
}
);
7 加载数据:
centerStore.load({
params: {
start: 0,
limit: 50,
marcNo :marcNo.getValue(),
marcName :marcName.getValue(),
marcDesc :marcDesc.getValue(),
statusRmk :statusRmk.getValue(),
marcKind :marcKind.getValue(),
startDate :indexFun.getDateFieldFormatValue(startDate),
endDate :indexFun.getDateFieldFormatValue(endDate),
queryFromForm :true
},
callback: function(r, options, success) {
if (!success) {
centerStore.removeAll();
}
}
});
8 centerrGrid.getView().refresh(); //可以使列号正确显示
发表评论
-
Ext文件上传、下载
2011-01-20 17:42 6373* Ext上传: ext文件上传需要扩展控件的支持: &l ... -
Ext.Window
2011-01-20 16:46 2334Ext.Window 1 在一个Ext web应用中,在每一 ... -
Ext布局_BorderLayout
2011-01-20 15:24 808BorderLayout布局的使用 n ... -
Ext.js浏览
2011-01-18 13:50 7961 window.undefined = window.und ... -
Ext3.2API
2011-01-18 13:39 598Ext3.2API -
Ext3.2API_中文版
2011-01-18 13:38 836Ext3.2API_中文版 -
Ext3.2API_English
2011-01-18 13:36 629Ext3.2API_English -
Ext3.2.1源码
2011-01-18 13:27 1045参见附件! -
Ext.form.DateField
2010-12-31 17:27 1278Ext.form.DateField1 自定义的日期校验类型 ... -
Ext form
2010-12-31 17:21 1589Ext中创建Form有两种方式,一种是使用Ext.form. ... -
Ext工具条
2010-12-31 16:31 6621 在jsp指定位置(某个div处)生成工具条 jsp页面: ... -
理解Ext.extend函数
2010-12-31 13:49 620显然了,从函数名就可 ...
相关推荐
### Ext.grid.GridPanel属性详析 #### 一、Ext.grid.GridPanel概述 `Ext.grid.GridPanel`是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。...
Ext.grid.GridPanel 删除线 放到example文件夹下运行
Ext.grid.GridPanel 是一个功能强大且广泛使用的Grid控件,但是它存在一个很大的缺陷:单元格的内容不能选中,没法选中就没法复制,这给用户带来了很多不便。这个问题的根源在于ExtJs输出的代码中,每个单元格的div...
var grid = new Ext.grid.GridPanel({ store: store, // 绑定数据存储 columns: [/* 定义列 */], plugins: [editor], // 使用 RowEditor 作为插件 title: 'My Grid', width: 500, height: 300, renderTo: ...
2. Ext.grid.EditorGridPanel:EditorGridPanel是Ext JS中的一种网格组件,它扩展了GridPanel,增加了单元格级别的编辑功能。用户可以直接在表格中修改数据,而无需跳转到单独的编辑页面。 二、核心特性 1. 可编辑...
右键菜单的资料,代码已经详细描写。请仿照文件中所描述即可使用,不限于EXT4.0以上版本使用。
### Ext grid panel 滚动条位置不变 在前端开发领域,特别是在使用Ext JS框架时,保持滚动条位置不变是一个非常实用的功能。特别是在处理实时数据更新的场景下,这一功能可以确保用户在数据刷新后仍然停留在之前...
Ext.grid.ColumnModel显示不正常
**2.6 Grid Panel (Ext.grid.GridPanel)** - **xtype**: `grid` - **功能描述**:Grid Panel 是一个用于展示表格数据的组件。 - **主要用途**:展示结构化数据,支持排序、过滤等功能。 **2.7 Paging Toolbar (Ext...
这个插件主要用于改进Ext Grid的用户体验,特别是处理大量数据时,通过列锁定和多表头功能,使得用户能够更有效地浏览和操作数据。 首先,"列锁定"是Ext Grid中一个非常实用的功能,特别是在显示宽广、多列的数据表...
这段代码创建了一个`Panel`,其中包含一个`GridPanel`,并配置了`Store`来从`data.json`加载数据。 接下来,`TreePanel`是用来展示树形结构数据的组件,常用于文件系统或组织结构的展示。与`Ext.Panel`类似,`...
其表格组件(`Ext.grid.GridPanel`)是其最具特色的功能之一,广泛应用于数据展示和管理。 #### 二、代码分析 在本例中,我们首先引入了必要的 ExtJS 相关文件,包括样式表、脚本等资源。 ```html ...
解决 ExtJS GridPanel 单元格无法选中复制的问题需要两个步骤:添加新的 CSS 样式和修改 Ext.grid.GridPanel 的 prototype。通过这些步骤,我们可以使得单元格的内容可以被选中和复制,从而提高用户体验。
var grid = new Ext.grid.GridPanel({ store: store, cm: cm, renderTo: Ext.getBody() // 渲染到页面的body元素 }); ``` 此外,EXTJS的GridPanel还支持许多高级特性,例如: - **行编辑**: 可以通过添加...
var grid = Ext.create('Ext.grid.Panel', { store: store, columns: columns, renderTo: Ext.getBody() // 渲染到页面 }); ``` 接下来,我们需要为GridPanel添加双击事件监听器。在ExtJs中,我们可以使用`...
在Ext JS中,`Ext.grid.GridPanel`是用于展示数据的主要组件之一。通过合理配置Grid的属性,可以使其根据父容器的大小动态调整自身尺寸,确保表格在任何布局下都能完美呈现。 #### 1. 利用CSS设置父容器尺寸 首先...
var grid = new Ext.grid.GridPanel({ store: store, columns: [ {header: "ID", dataIndex: "id", width: 50}, {header: "Name", dataIndex: "name", width: 150}, {header: "Email", dataIndex: "email", ...
ExtJS是一款基于JavaScript的RIA(Rich Internet Application,富互联网应用)框架,它提供了许多强大的功能和组件,其中之一就是表格组件Ext.grid.GridPanel。 Ext.grid.GridPanel是一个功能强大的表格控件,它...
var grid = new Ext.grid.GridPanel({ el: 'grid', ds: ds, cm: cm }); grid.render(); ``` #### 高级特性:添加CheckBox 在Grid中集成CheckBox选择模型,可实现行项目的多选功能。具体操作如下: 1. **...
var grid = new Ext.grid.GridPanel({ store: store, columns: [/*...*/], // 列定义 viewConfig: { forceFit: true // 自动调整列宽 }, bbar: new Ext.PagingToolbar({ store: store, // 关联数据存储 ...