`
wxzauh
  • 浏览: 18156 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Grid视图---Ext.grid.GridView基本方法

阅读更多
Ext.grid.GridView 中常用的方法不多,但有些方法特别有用,下面是Ext.grid.GridView
最重要的方法:
² getRows():返回所有的行,这些行不是Extjs 的封装类对象,而是TR 元素对象,
只能通过dom访问他的属性;
² getRow(row):返回指定的行,不是Extjs的封装类对象,而是TR元素对象,只能
通过dom访问他的属性;
² getCell(row, col):返回第row 行第col 列的单元格,返回的单元格不是Extjs 的封
装类对象,而是TD 元素对象,只能通过dom访问他的属性;
² refresh(headersToo):刷新,如果headersToo为true,则表头也一起刷新;
Ø 读取被选行的值
Store由结构和数据构成,每一行都是一个Ext.data.Record,Record的每一个值都由name
标识,通过name属性值可以读取出指定Record的某一列的值。先看下面的代码:
grid.getStore().getAt(i).get("Memo");
grid.getStore()获取GridPanel的Store,getAt(i)获取第i个Record,get(“Memo”)获取Record
的Memo的值。应该还记得,我们曾经这样定义过Record:
var Human = Ext.data.Record.create([
{name: "Name", type: "string", mapping: "name"},
{name: "Sex", type: "string", mapping: "sex"},
{name: "Birthday", type: "string", mapping: "birthday"},
{name: "Education", type: "string", mapping: "edu"},
{name: "Memo", type: "string", mapping: "memo"}
]);
下面的示例将打印出所有被选行的姓名:
var view = grid.getView();
var rsm = grid.getSelectionModel();//得到行选择模型
var r = "";
for(var i = 0; i < view.getRows().length; i ++){
if(rsm.isSelected(i)){//找到选中的行
r += grid.getStore().getAt(i).get("Name") + "<br>";
}
}
Ext.MessageBox.alert("选择", "您选择的数据有:<br>" + r);
Ø 增加新行
我们可以把新行添加到任何位置,这需要调用Ext.data.Store中定义的方法:
² add(records):将记录添加到行尾,可以一次添加多行,records为Ext.data.Record[]
类型的参数;
² insert(index, records):将记录添加到指定索引处,可以一次添加多行,records
为Ext.data.Record[]类型的参数;
本章示例中,我们定义了一个描述人类的结构Human,以Human为基础,我们创建数
据:
var obj = {
Name: "新人物",
Sex: "女",
Birthday: Date.parseDate("1980-05-12", "Y-m-d"),
Education: "本科",
Memo: "是新的"
};
这是一个json 对象,也可以是数组,由Reader 的类型决定,json 对象中的属性名必须
和Human的name属性值一致,这是一种映射关系。
我们将obj与Human合并:
var human = new Human(obj);
将 human添加到Store中就可以了。最后,刷新GridView,让界面重新显示,GridView
会重新从Store读取数据并更新界面。下面是本操作完整的源代码:
var view = grid.getView();
var obj = {
Name: "新新人类",
Sex: "男",
Birthday: Date.parseDate("2009-05-16", "Y-m-d"),
Education: "本科",
Memo: "我是新新人类,所向无敌!"
};
var human = new Human(obj);
grid.getStore().insert(0, human);//添加到行首,修改第一个参数可以添加到任何位置
view.refresh();
如果要添加到行尾,使用下面的语句,其他代码完全相同:
grid.getStore().add(human);
Ø 删除选择行
删除行的思路和添加行大同小异,基本实现步骤如下:
1. 循环遍历所有行
2. 判断当前行是否被选中
3. 删除选中的行
删除行同样要使用Ext.data.Store 的方法remove(),如果是逐行删除,则应该遵循从后
往前的方向,remove()这样定义:
remove (record):删除指定的记录,record参数为Ext.data.Record类型对象
另外,如果要删除所有行,可以调用removeAll()方法。
看看完整的源代码:
{
text: "删除选定行",
icon: "../extjs/resources/images/default/dd/drop-no.gif",
cls: "x-btn-text-icon",
handler: function(){
var rsm = grid.getSelectionModel();//得到行选择模型
var view = grid.getView();
var store = grid.getStore();
for(var i = view.getRows().length - 1; i >= 0 ; i --){
if(rsm.isSelected(i)){
store.remove(store.getAt(i));
}
}
view.refresh();
}
}
删除所有行则简单了很多:
var store = grid.getStore();
var view = grid.getView();
store.removeAll();
view.refresh();
分享到:
评论

相关推荐

    Ext.grid.GridPanel属性祥解

    - 说明:定义了表格的视图类型,默认是`Ext.grid.GridView`。 - 示例:`view: new Ext.grid.GridView()` 11. **viewConfig** - 说明:提供了进一步配置视图的行为和样式的选项。 - 示例:`viewConfig: { ...

    Ext grid panel 滚动条位置不变

    为了确保每次加载数据时滚动条都能正确地回到原来的位置,我们还可以通过覆盖`Ext.grid.GridView`中的方法来进一步增强功能: ```javascript Ext.override(Ext.grid.GridView, { scrollTop: function () { this....

    extjs帮助文档pdf版

    - **概述**:`Ext` 是 ExtJS 的核心命名空间,包含了全局的方法和属性。 - **用途**:提供了一个统一的入口来访问 ExtJS 库的功能,如创建组件、管理事件等。 - **常用方法**: - `Ext.create()`: 创建一个组件实例...

    Ext表格列锁定+多表头插件

    1. Ext.grid.GridView:这是Ext Grid的基础视图组件,负责渲染表格的行和列。 2. Ext.grid.LockingGridView:这是扩展的GridView,增加了列锁定功能。 3. Ext.grid.plugin.GroupHeader:这是一个插件,用于创建多级...

    Ext grid合并单元格

    具体来说,是重写 GridView 的 `renderHeaders` 方法,该方法用于渲染 Grid 的表头部分。 ### 三、代码分析 #### 1. 自定义 GridView 类 首先,创建了一个名为 `MyGridView` 的类,该类继承自 `Ext.grid.GridView...

    ext-ux-grid-gridviewmenuplugin

    在Ext JS中,`GridView`是`Ext.grid.Panel`的一个组成部分,负责渲染表格的行和列。而`GridViewMenuPlugin`则扩展了`GridView`的功能,将菜单与表格视图紧密结合,使得在表格上下文菜单中可以触发特定的操作或显示...

    EXTGrid属性方法

    ### EXTGrid属性方法详解 #### 一、Ext.grid.GridPanel `Ext.grid.GridPanel`是ExtJS 4.0中的一个关键组件,用于创建数据表格。以下为该组件的一些核心属性及其含义: - **store**: 数据存储器,用于存放表格的...

    深入浅出ExtJS第2版

    3.8 表格视图--Ext.grid.GridView 46 3.9 表格分页 47 3.9.1 为Grid添加分页工具条 48 3.9.2 通过后台脚本获得分页数据 49 3.9.3 分页工具栏显示在Grid的顶部 51 3.9.4 让EXT支持前台排序 52 3.10 后台排序 ...

    精通JS脚本之ExtJS框架.part1.rar

    9.1 表格视图——Ext.grid.GridView 9.2 表格分页 9.2.1 添加表格分页显示工具条 9.2.2 从后台脚本获得分页数据 9.2.3 在表格顶部显示分页工具条 9.2.4 实现前台分页效果 9.3 可编辑表格控件——EditorGrid ...

    精通JS脚本之ExtJS框架.part2.rar

    9.1 表格视图——Ext.grid.GridView 9.2 表格分页 9.2.1 添加表格分页显示工具条 9.2.2 从后台脚本获得分页数据 9.2.3 在表格顶部显示分页工具条 9.2.4 实现前台分页效果 9.3 可编辑表格控件——EditorGrid ...

    ext Gird 有滚动条功能

    这就需要用到`Ext.grid.GridView`,这是一个负责渲染和管理Grid视图的类,包括滚动条。 `Ext.grid.GridView.js`文件正是实现这些功能的核心代码。在这个文件中,我们可以找到与滚动条相关的配置项和方法,如`...

    修改grid行或列颜色

    在ExtJS中,`gridviewConfig` 是一个非常重要的配置对象,它用于定义Grid视图的行为。在给定的例子中,我们重点关注 `getRowClass` 方法和 CSS 样式定义。 #### 1.1 `getRowClass` 方法 `getRowClass` 是一个函数,...

    给Extjs的GridPanel增加“合计”行

    - 首先,我们需要创建一个继承自EXTJS的`Ext.grid.GridView`的自定义View类。这个类将覆盖默认的渲染逻辑,以便在表格底部插入合计行。 - 在`GridSummary.js`文件中,我们可以定义这个类,并重写`onRender`方法,...

    ext-2.0.2-aspx-only-aspx-examples

    1. **ExtJS 2.0.2 API**: 了解该版本提供的所有类、方法和配置选项,如Ext.Component、Ext.Panel、Ext.grid.GridPanel等。 2. **ASP.NET与JavaScript集成**: 学习如何在ASP.NET页面中嵌入和初始化ExtJS脚本,以及...

    sencha touch表格冻结首列demo实例

    var gridView = Ext.create('Ext.grid.Grid', { store: store, columns: columnModel, frozenColumnCount: 1, // 指定冻结的列数 // 其他配置... }); // 将表格添加到视图 Ext.Viewport.add(gridView); ``` 这...

    gridpanel的使用

    * `view`: 表格视图,默认为 `Ext.grid.GridView`。 * `viewConfig`: 表格视图的配置对象。 * `autoExpandMax`: 自动扩充列的最大宽度,默认为 1000。 * `autoExpandMin`: 自动扩充列的最小宽度,默认为 50。 * `...

    GridPanel属性详解

    - **描述**:`view`配置项用于指定表格使用的视图,默认情况下使用`Ext.grid.GridView`。 11. **viewConfig** - **描述**:此配置项允许进一步定制表格视图的行为。 12. **autoExpandMax/autoExpandMin** -...

    Ext 3.4 多表头 列锁定

    Ext 3.4是一款基于JavaScript的富客户端框架,主要用于构建复杂的Web应用程序,它包含一个强大的组件库,其中包括表格视图(GridView)。在这个特定的场景中,我们关注的是"多表头"和"列锁定"功能,这两者都是Ext JS...

    汇总Extjs中GridPanel的各个属性与方法.doc.docx

    14. **Ext.grid.GridView**: GridView 是 GridPanel 的视图组件,控制着数据的渲染方式。`enableRowBody` 配置项允许包含行的详细信息,当用户点击行时会显示额外的内容。 15. **index**: 当用于 GridView 相关...

    Extjs中文教程

    - **Grid视图**:`GridView`负责渲染表格中的数据,支持行高调整、行展开等功能。 #### 二十、GridPanel分页 - **分页工具栏**:`PagerToolbar`用于控制GridPanel的分页显示,包括当前页码、总页数等信息。 - **...

Global site tag (gtag.js) - Google Analytics