extaspnet grid如何在客户端改变Grid的数据,或者说用JS或者EXTJS来改变Grid显示的数据

当前位置:
→ extjs学习笔记(六) grid中数据的保存,添加和删除
extjs学习笔记(六) grid中数据的保存,添加和删除[多图]
字体大小:【 |
  在上一个系列当中,我们学习了如何
对grid中的内容执行
编辑,但是编辑的结果我们并没有保存,这在实际的运用
中是没有什么意义的。在有些情况下,除了编辑之外,还要通过grid执行
数据的添加
和删除,这两个操作也涉及到对于数据的保存。在这个系列里边,我们将学习如何
保存数据以及通过grid对数据执行
和删除。  我们在前边的学习流程
中已经知道,grid其实只是显示数据,它通过配置参数store来获得数据,这个参数须要
的是Store类或者其子类的一个对象,里边封装了我们须要
的数据。我们现在应该已经比较熟悉Store类了,这次我们须要
它的一个属性modified,里边保存了被修改过的记录的集合。我们通过把上个系列中的例子改动
一下来看看如何
保存数据:  1///&reference path="vswd-ext_2.0.2.js" /&  2/**//*  3*作者:大笨  4*日期:  5*版本:1.0  6*博客地址:http://yage.cnblogs.com  7*QQ:  8*/  9Ext.BLANK_IMAGE_URL = '../extjs/resources/images/default/s.gif'; 10 11Ext.onReady(function() { 12    Ext.QuickTips.it(); 13 14    //格式化日期 15    function formatDate(value) { 16        return value ? value.dateFormat('Y年m月d日') : ''; 17    } 18 19    // 别名 20    var fm = Ext. 21 22    //构造一个只能包含checkbox的列 23    var checkColumn = new Ext.grid.CheckColumn({ 24        header: 'Indoor?', 25        dataIndex: 'indoor', 26        width: 55 27    }); 28 29    // 构造ColumnModel 30    var cm = new Ext.grid.ColumnModel({ 31        columns: [{ 32            id: 'common', 33            header: 'Common Name', 34            dataIndex: 'common', 35            width: 220, 36            // 运用
上边定义好的别名 37            editor: new fm.TextField({ 38                allowBlank: false 39            }) 40        }, { 41            header: 'Light', 42            dataIndex: 'light', 43            width: 130, 44            editor: new fm.ComboBox({ 45                typeAhead: true, 46                triggerAction: 'all', 47                transform: 'light', 48                lazyRender: true, 49                listClass: 'x-combo-list-small' 50            }) 51        }, { 52            header: 'Price', 53            dataIndex: 'price', 54            width: 70, 55            align: 'right', 56            renderer: 'usMoney', 57            editor: new fm.NumberField({ 58                allowBlank: false, 59                allowNegative: false, 60                maxValue: 100000 61            }) 62        }, { 63            header: 'Available', 64            dataIndex: 'availDate', 65            width: 95, 66            renderer: formatDate, 67            editor: new fm.DateField({ 68                format: 'Y年m月d日', 69                minValue: '01/01/06', 70                disabledDays: [0, 6], 71                disabledDaysText: 'Plants are not available on the weekends' 72            }) 73        }, 74        checkColumn, 75    ], 76        defaults: { 77            sortable: true 78        } 79    }); 80 81 82    // 构造一个Store对象 83    var store = new Ext.data.Store({ 84 85        url: 'plants.xml', 86 87        reader: new Ext.data.XmlReader( 88            { 89                record: 'plant' 90            }, 91 92            [ 93                { name: 'common', type: 'string' }, 94                { name: 'botanical', type: 'string' }, 95                { name: 'light' }, 96                { name: 'price', type: 'float' }, 97                { name: 'availDate', mapping: 'availability', type: 'date', dateFormat: 'm/d/Y' }, 98                { name: 'indoor', type: 'bool' } 99            ]100        ),101102        sortInfo: { field: 'common', direction: 'ASC' }103    });104105    // 构造可编辑的grid106    var grid = new Ext.grid.EditorGridPanel({107        store: store,108        cm: cm,109        renderTo: 'grid',110        width: 600,111        height: 300,112        autoExp
andColumn: 'common',113        title: 'Edit Plants?',114        frame: true,115        plugins: checkColumn,116        clicksToEdit: 1,117        listeners: {118            "afterEdit": {119                fn: afterEdit,120                scope: this121            }122        },123        tbar: [{124            text: "保存",125            handler: function() {126                var modified = store.127                updateData(modified);128            }129        }]130    });131132    // 触发数据的加载133    store.load();134135    //发送数据到服务器端执行
更新136    function updateData(modified) {137        var json = [];138        Ext.each(modified, function(item) {139            json.push(item.data);140        });141        if (json.length & 0) {142            Ext.Ajax.request({143                url: "EditGrid.aspx",144                params: { data: Ext.util.JSON.encode(json) },145                method: "POST",146                success: function(response) {147                    Ext.Msg.alert("信息", "数据更新成功!", function() { store.reload(); });148                },149                failure: function(response) {150                    Ext.Msg.alert("警告", "数据更新失败,请稍后再试!");151                }152            });153        }154        else {155            Ext.Msg.alert("警告", "没有任何须要
更新的数据!");156        }157    }158159    //编辑后触发的事件,可在此执行
数据有效性的验证160    function afterEdit(e) {161        if (e.field == "common") {162            if (e.value == "大笨") {163                Ext.Msg.alert("不正确
", "大笨是人物不是植物", function() { grid.startEditing(e.row, e.column) });164            }165        }166    }167});
[1]&&&&&&&&使用grid显示数据(1);毫无疑问,grid是Ext中使用最广泛的组件之一;方式为最终用户展现我们的数据,电子表格就是这种方;在这一章中我们会:;?使用GridPanel来在用户友好的表格中展示;我们将说明如何定义表格的行和列,但是更为重要的是;格更为美观;到底什么是表格?;Ext的表格和电子表格相似,包含2个重要的部分:;在这里,我们的列是:Title,
使用grid显示数据(1) 毫无疑问,grid是Ext中使用最广泛的组件之一。我们需要以一种易于理解的方式为最终用户展现我们的数据,电子表格就是这种方式之一,而且相当完美――应为它做到了,并且让这一观念深入人心。Ext 接受了该观点,并使得它更加灵活而且奇妙。 在这一章中我们会: ? 使用GridPanel来在用户友好的表格中展示结构化的数据; ? 从服务器或数据库加载数据显示在表格中; ? 使用表格提供的事件来控制表格的功能和显示; ? 在表格中采用高级的数据格式化技术; ? 建立分页表格。 我们将说明如何定义表格的行和列,但是更为重要的是,我们将学习如何使表格更为美观。我们可以添加自定义渲染的单元格,并且在其中添加图片,我们还可以根据数据值来改变显示样式。 到底什么是表格? Ext的表格和电子表格相似,包含2个重要的部分: ? 行 ? 列
在这里,我们的列是:Title, Released, Genre, 和 Price。每一行包含像The Big Lebowski, Super Troopers之类的电影。这些行都是我们的数据;表格中的每一行代表数据中的一条记录。
在GridPanel中显示结构化的数据: 在表格中显示数据需要两个Ext组件: ?
store――像数据库一样,追踪要显示的数据; ? 表格面板――提供展现store中数据的方式。 在我们开始来实现这些之前,让我们先来看看将被我们使用到的术语,因为这些术语可能会把我们搞糊涂: ?
Columns(列):它引用整个数据列,包含显示数据有关的信息,包括列的head(列标题),在ExtJS中,这些都是Column Model(列模型)的一部分; ?
Fields(字段):它也引用了真个数据列,但是它引用的是实际的数值。在ExtJS里,它被在reader(Ext读取数据的组件)中,用来加载数据。 建立data store(数据容器):
我们需要做的第一件事就是建立我们的数据,它将会被放到data store之中。data store有不同的类型,可以让我们读取不同形式的数据(XML,JSON等等),并且可以在不同的Ext控件中来完成读取数据的过程。不管数据是JSON,XML还是数组,甚至是我们自己自定义的数据类型,我们都可以通过相同的方式访问,这要感谢data store。 下面是一些Ext中默认的data store类型: ? Simple (Array)(数组) ? XML ? JSON
A custom data store could be created to read data that does not fit into thesecategories.
可以创建自定义的data store来读取其他类型的数据。Ext论坛提供了一些用户贡献的data store,例如CSV和ColdFusion形式的数据。 在data store中添加数据: 初次尝试,我们将建立一个以本地数组为数据源的表格。接下来我们使用到的数据来自一个小的电影数据库,其中包含了一些我最喜爱的电影,这与这章后面用到的来自真实数据库的数据很相似。 The data store needs two things: the data itself, and a description of the data―or what could be thought of as the fields. data store需要两个东西:数据本身和数据描述――如同字段以及其它你能想到的类似的东西。 reader(读取器)读取器将被用来读取来自数组的数据,在其中我们会定义数组数据的字段名(field)。读取器相当于一个翻译,它将数据字符串翻译为一行一行的数据来供Ext使用。 接下来的代码应该被放到Ext的OnReady函数内部: var store = new Ext.data.Store({
] \\1, \\1 3, \\\1, \\1 //...more rows of data removed for readability...// reader: new Ext.data.ArrayReader({id:'id'}, [
'id', 'title', 'director', {name: 'released', type: 'date', dateFormat: 'Y-m-d'}, 'genre', 'tagline', 'price', 'available'
}); ] 如果我们在浏览器中查看这段代码,我们不会看到任何东西――因为data store只是用来加载并跟踪数据的一种方式。现在浏览器的内存中已经有我们的数据了。现在我们只需要决定怎样将它显示给用户。 为data store定义数据: reader需要知道从数据存储器中读取哪些字段,所以我们需要定义这些字段。 字段使用由对象组成的数组来定义――如果数据被挨个读取,那么只需要指定这个字段的名称就可以了。在这个例子中,除了一个字段,其他的都可以通过简单的命名来定义。 举个例子,标题字段可以用如下的对象来定义: {name: 'title'} 然而,在我们的用例中,因为我们仅仅把这个字段以一个字符串的形式读取,我们可以简单的定义这个字段的名称以减少一些输入: 'title' released 字段很特殊,是因为我们需要适当处理它的数据,设置它的type为data。对于每种字段格式类型(type),都有一些选项来更明确的定义它的格式。使用日期类型(date type)时,还需要定义dateFormat(时间格式化)属性,它是一个字符串(本例中是'Y-m-d')。如果你用过PHP的话,时间格式化字符串看起来很熟悉,因为Ext使用了与PHP相似的时间格式化字符串。 {name: 'released', type: 'date', dateFormat: 'Y-m-d'} 指定的数据类型: ExtJs有许多途径来适当读取特定数据类型,它们都列在下面: 字段类型 string int float boolean date 说明 字符串数据 数字 浮点型数字 true/false 日期数据 信息
使用JS的parseInt函数 使用JS的parseFloat函数
需要dateFormat配置 以下是一些我经常使用的数据类型: 三亿文库3y.uu456.com包含各类专业文献、幼儿教育、小学教育、各类资格考试、专业论文、应用写作文书、生活休闲娱乐、高等教育、文学作品欣赏、Extjs教程grid显示编辑数据28等内容。 
 extjs&使用grid显示数据_计算机软件及应用_IT/计算机_专业资料。使用grid显示数据...Extjs教程grid显示编辑数... 30页 4下载券 ExtJS Grid进阶 29页 免费 Extjs ...  Extjs教程 第五章 使用grid显示数据(1)_IT/计算机_专业资料。Extjs手把手教程使用...一些输入: 'title' released 字段很特殊,是因为我们需要适当处理它的数据,设置...  EXTJS专题总结--GRID数据编辑_政史地_高中教育_教育专区。今日推荐 116...Extjs教程 第五章 使用g... 10页 1下载券喜欢此文档的还喜欢 ...  Extjs教程 第五章 使用grid显示数据(2)_IT/计算机_专业资料。Extjs手把手教程第五章 使用 grid 显示数据(2)使用 cell renderer(单元格渲染器):我们可以使用单元...  GridObj(gridObj);//加载数据 },10); }, afterrender : function(gridObj,...Extjs教程grid显示编辑数... 30页 3下载券喜欢此文档的还喜欢 ExtJS入门教程(...  Extjs教程 第五章 使用grid显示数据(3)_IT/计算机_专业资料。Extjs手把手教程今日...Extjs Grid 编辑 新增 删... 8页 免费 ExtJS教程--计划使用 20页 免费 Ex...  1、删除多行数据 例子里使用的是 var selection = grid.getView().get...特殊编辑器等 后台交互 与后台的交互在一开始还是纠结了半天,没看清楚 extjs ...  ExtJs数据管理操作源代码_计算机软件及应用_IT/计算机_专业资料。ExtJs数据管理操作...(&customerGrid&).getSelectionModel().getSelected(); //得到多个 record ...拒绝访问 | www.ggdoc.com | 百度云加速
请打开cookies.
此网站 (www.ggdoc.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3da3dd-ua98).
重新安装浏览器,或使用别的浏览器extjs&使用grid显示数据_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
extjs&使用grid显示数据
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩28页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 extaspnet grid 的文章

 

随机推荐