Ext.onReady(function(){ //1.定义数据仓库 store,通常store 可以有三种类型 //simpleStore,xmlStore,jsonStore //2.配置GridPanel 时,要配置一些基本的设置: // 1>renderTo 展现的地方,可以是dom或ID元素 // 2>frame 为true 时设置边框 // 3>width,height 宽,高 // 4>store 加载数据 // 5>columns 展现的列信息,columns 中renderer:fn.可以用Ext.util.format 下信息:dateRenderer,uppercase,lowercase,capitalize等 //renderer 参数:值 ,cell信息,store的记录信息 // 6>stripeRows 交替颜色 // 3.排序的方法 // 1>直接在配置中设置:{header: 'Tagline', dataIndex: 'tagline', sortable: true} // 2>设置完成后,修改: var firstCm = firstGrid.getColumnModel();firstCm.getColumnById(0).sortable = true; // 4.设置可见的方法 // 1>直接在配置中设置:{header: "Tagline", dataIndex: 'tagline', hidden: true} // 2>设置完成后,修改 var firstCm = firstGrid.getColumnModel();firstCm.setHidden(firstCm.getIndexById("title"),true); // 5.设置是否移动 // 1>移动时gridpanel配置设置是否移动:enableColumnMove:true//是否移动 // 2>移动时,设置移动函数 firstCm.on("columnMoved",function(cm,oindx,nindx) // 6.从store 中读取数据 // 1>从xml文件读取据,首先有xml文件,如xml/movie.xml文件.定义store,分别配置url和reader为xmlReader,设置好{record},配置完store后设置load. // 2>json文件读取,首先有json文件,如json/movie.json文件.定义jsonStore,分别配置url和fields,root,配置完store后设置load. // 3>从服务器端读取,服务端返回json格式,客户端用jsonStore,读取,解析方式同json文件读取. // 7.表格数据的操作之选择操作 // 1>定义数据模式,选择模式 getSelectionModel,取 selectionModel的几个方法 hasSelection(),getSelected(), // 2>sel = sm.getSelected()选择到的据行 进行set数据操作,操作时用sel.data.**来展示数据. // 8.表格数据的操作之列操作 // 1>义数据列模式, getColumonModel(),取其中的列 getColumnById("ID"); // 2>对列数据进行操作cm.setHidde(column,true Or false) cm.isHidden(); // 9.数据分页 // 1>要定义一个jsonStore 用来保存数据,store 有root,和totlaProperty用来告知从哪取数据和总的数据量 // 2>在gridPanel中定义一个PagingToolbar,用来分页展示,其中当前面和总页数就是参数设置的start和totalProperty的设置值 // 3>设置grid信息和后台数据对这些组件进行组装 // 10.数据分组 // 1>首先定义数据分组GroupingStore仓库,主要配置排序信息sortInfo,分组域groupField,还有reader // 2>后续定义grid,定义时加上 groupView,以展示分组信息.否则没有分组效果. //定义一个普通数组 var store = new Ext.data.Store({ //定义数据 data data:[[ "de.png", 1, "Office Space", "Mike Judge", "1999-02-19", 1, "Work Sucks", "19.95", 1 ],[ "us.png", 3, "Super Troopers", "Jay Chandrasekhar", "2002-02-15", 2, "Altered State Police", "14.95", 2 ] ], reader:new Ext.data.ArrayReader({ id:"id" },[ 'image', 'id', 'title', 'director', {name: 'released', type: 'date', dateFormat: 'Y-m-d'}, 'genre', 'tagline', 'price', 'available' ] ) }); //设置类型 var genreStore = new Ext.data.SimpleStore({ data:[ [1,"喜剧"], [2,"悲剧"] ], fields:["id","name"] }); //定义xml仓库 var movieXmlStore = new Ext.data.Store({ url:"./xml/movie.xml", reader:new Ext.data.XmlReader({ record:"row", id:"xmlMovie" },[ "id", "title", "director", {name:"released",type:'date',dateFormat:"Y-m-d"}, "genre", "tagline", "coverthumb", {name:"price",type:'float'}, {name:"active",type:'bool'} ] ) }); //定义json 仓库 var movieJsonStore = new Ext.data.JsonStore({ url:"./json/movie.json", root : "rows", fields: [ "id", "title", "director", {name:"released",type:'date',dateFormat:"Y-m-d"}, "genre", "tagline", "coverthumb", {name:"price",type:'float'}, {name:"active",type:'bool'} ] }); //定义远程服务端仓库,用来分页展示 var removeStore = new Ext.data.JsonStore({ url:"../saleInfo.do?method=getMovieInfo", root:"rows", totalProperty: 'results', fields:[ "id", "title", "director", {name:"released",type:'date',dateFormat:"Y-m-d"}, "genre", "tagline", "coverthumb", {name:"price",type:'float'}, {name:"active",type:'bool'} ] }); var grpStore = new Ext.data.GroupingStore({ url:"./json/movie.json", sortInfo:{ field:"director", direction:"DESC" }, groupField:"director", reader: new Ext.data.JsonReader({ root:"rows", fields: [ "id", "title", "director", {name:"released",type:'date',dateFormat:"Y-m-d"}, "genre", "tagline", "coverthumb", {name:"price",type:'float'}, {name:"active",type:'bool'} ] }) }); //在grid 控件上显示store 数据信息 var firstGrid = new Ext.grid.GridPanel({ title:"电影信息列表", width:700, height:300, frame:true, stripeRows:true, autoExpandColumn:5, renderTo:document.body, // store:store, // store:movieXmlStore, // store:removeStore, store:grpStore, columns:[{ header:"图片",dataIndex:"image",renderer:function(val){ return "<img src='image/" + val + "'>"; } },{ id:"title",header:"标题",dataIndex:"title",renderer:function(val,x,curStore){ return "<b>" + val + "</b><br/>" + curStore.get("tagline"); } },{ header:"导演",dataIndex:"director" },{ header:"发布日期",dataIndex:"released",renderer:Ext.util.Format.dateRenderer("m/d/y") },{ header:"喜剧类型",dataIndex:"genre" // ,renderer:function(val){ // return genreStore.queryBy(function(rec){ // return rec.get("id") == val; // },this).itemAt(0).get("name"); // } },{ header:"说明",dataIndex:"tagline" },{ id:"price",header:"价格",dataIndex:"price" } ], enableColumnMove:true,//是否移动 sm:new Ext.grid.RowSelectionModel({ singleSelect:true, listeners:{ rowSelect:{ fn:function(sm,indx,record){ Ext.MessageBox.alert("title",record.get("title")); } } } }), tbar:[{ text:"Change Title", handler:function(){ var sm = firstGrid.getSelectionModel(); if(sm.hasSelection()){ var sel = sm.getSelected(); Ext.Msg.show({ title:"Change title", prompt:true, buttons:Ext.MessageBox.OKCANCEL, value:sel.data.title, fn:function(btn,txt){ if(btn == "ok"){ console.debug(txt); sel.set("title",txt); } } }) } } },{ text:"Hide price", handler:function(btn){ var cm = firstGrid.getColumnModel(); var cmPrice = cm.getIndexById("price"); if(cm.isHidden(cmPrice)){ cm.setHidden(cmPrice,false); btn.setText("Hide price"); }else{ cm.setHidden(cmPrice,true); btn.setText("Show price"); } btn.render(); } } ], // bbar:new Ext.PagingToolbar({ // pageSize:1, // store:removeStore, // items:[ // "-", // { // pressed: true, // text:"test", // enableToggle:true, // toggleHandler:function(){ // Ext.Msg.show({ // title:"dss" // }); // } // } // ] // }) view:new Ext.grid.GroupingView() }); //设置,排序和隐藏 var firstCm = firstGrid.getColumnModel(); firstCm.getColumnById(0).sortable = true; // firstCm.setHidden(firstCm.getIndexById("title"),true); //移动时设置 firstCm.on("columnMoved",function(cm,oindx,nindx){ //根据位置显示向左移或向右移 var colName = cm.getColumnHeader(oindx); var msg = ""; if(oindx > nindx){ msg = colName + " move to left."; }else{ msg = colName + " move to right."; } Ext.Msg.alert("colomn " + colName,msg); }); // movieXmlStore.load(); // movieJsonStore.load(); // removeStore.load({params:{start:0,limit:1}}); grpStore.load(); })
详细解决方案
LearningExtJS_new 之 GRID的运用学习(三)
热度:433 发布时间:2012-11-06 14:07:00.0
相关解决方案
- Extjs grid 失去选中行的列数据
- Ext.grid.rowexpander 默许展开
- Ext.ux.grid.RowEditor 的使用出现有关问题 。 求大神指点
- 小女子请教一个 Ext.ux.grid.RowEditor的有关问题
- extjs grid 怎么实现 行选中变色
- DevExpress.XtraGrid.Views.Grid.GridView 怎么自增新行
- grid ++ report异常
- Grid++Report 显示有关问题
- 有关MVC3中用到Html.Telerik().Grid()的绑定有关问题, 急
- ComponentArt:Grid 单击第二页时 报the data could not be loaded,该如何处理
- easyui grid 关于最后一条记录,该怎么解决
- 关于dv grid 的有关问题
- Ext Js 4 为什么一直出现 grid.getSelectionModel()没有定义。该如何解决
- grid++report Web插件有破解版本吗?解决思路
- 寻好用的 Grid 控件。For Asp.net,该如何解决
- vpf9.0 grid 中text的怪有关问题
- GRID 修改即显示的有关问题
- vfp grid 会粘贴excel 内容吗
- ~help grid sql text显示 插入
- grid 显示10列,要在第二列插一列,就得把剩上所有列号加一,有无简单办法
- grid 怎么列宽固定,不可拖拽
- Grid 中加入复选框后的奇怪有关问题
- 在表单上点击按钮生成表内数据后能同时更新到表格(grid)不,该怎么处理
- grid 列只读解决方案
- grid 当前记录行 反色显示 总弄不成?解决方法
- grid checkbox 获取checkbox值,该怎么处理
- grid checkbox 动态解决方法
- grid,combo在表单的有关问题
- VFP GRID 刷新影响其他控件显示的有关问题
- GRID:怎么…