ExtJS Grid进阶

2026/1/18 14:42:17

grid.addListener('rowcontextmenu', rightClickFn);//右键菜单代码关键部分 var rightClick=new Ext.menu.Menu({ id:'rightClickCont', //在HTML文件中必须有个rightClickCont的DIV元素 items: [{id: 'rMenu1', handler: rMenu1Fn,//点击后触发的事件 text: '右键菜单1' }, {id: 'rMenu2', handler: rMenu2Fn, text: '右键菜单2' }] });

function rightClickFn(grid,rowindex,e){ e.preventDefault(); rightClick.showAt(e.getXY()); }

function rMenu1Fn(){

Ext.MessageBox.alert('right','rightClick'); }

****Grid提供了4个与右键菜单有关的事件:

contextmenu : (Ext.EventObject e): 全局性的右键事件

cellcontextmenu:(Grid this,Number rowIndex, Number cellIndex,Ext.EventObject e): 单元格的右键事件

rowcontextmenu:(Grid this,Number rowIndex, Ext.EventObject e): 行上的右键事件 headercontextmenu:(Grid this,Number colIndex, Ext.EventObject e): 表头的右键事件

9、将GridPanel放入一个Panel或TabPanel中 var tabs = new Ext.TabPanel({ collapsible: true, renderTo: 'product-exceptions', width: 450, height:400, activeTab: 0, items:[ {title: 'Unmatched'}, {title: 'Matched'} ] });

tabs.doLayout();

var panel = new Ext.Panel({ renderTo: 'panel', title:'panel', collapsible:true,

width:450, height:400, items:[grid] //管理grid });

Panel必须有DIV存在。其包含的Component有items管理。

10、从服务器获取数据和数据翻页控件

从一个服务器文件,如ASP、JSP或Servlet中获得数据二维Array、JSON或XML数据,

也可以被Ext读取,并被Grid显示:

服务器文件data.asp: <% start = cint(request(\ limit = cint(request(\ dim json json=cstr(\ for i = start to limit + start-1 json =json + cstr(\+cstr(i) + cstr(\+ cstr(i) + cstr(\ if i <> limit + start - 1 then json =json + \ end if next json = json +\ response.write(json) %>

我们可以看到,这个页面会根据传入的start和limit的不同,返回不同的数据,其实质是个分页的代码。

下面是start=0,limit=10的JSON数据: {totalProperty:100,root:[{'id':'0','name':'name0','descn':'descn0'}, {'id':'1','name':'name1','descn':'descn1'}, {'id':'2','name':'name2','descn':'descn2'}, {'id':'3','name':'name3','descn':'descn3'}, {'id':'4','name':'name4','descn':'descn4'}, {'id':'5','name':'name5','descn':'descn5'}, {'id':'6','name':'name6','descn':'descn6'}, {'id':'7','name':'name7','descn':'descn7'}, {'id':'8','name':'name8','descn':'descn8'}, {'id':'9','name':'name9','descn':'descn9'} ]}

我们使用分页控件来控制Grid的数据: Ext.onReady(function(){ var sm=new Ext.grid.CheckboxSelectionModel(); var cm=new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), sm, {header:'编号',dataIndex:'id'}, {header:'性别',dataIndex:'sex'}, {header:'名称',dataIndex:'name'}, {header:'描述',dataIndex:'descn'} ]); cm.defaultSortable = true; var ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url:'data.asp'}), reader: new Ext.data.JsonReader( {totalProperty: 'totalProperty', root: 'root' }, [{name: 'id'},{name: 'name'},{name: 'descn'}]) }); ds.load({params:{start:0,limit:10}}); var grid = new Ext.grid.GridPanel({ el: 'grid3', ds: ds, cm: cm, sm: sm, title: 'ASP->JSON', bbar: new Ext.PagingToolbar({ pageSize: 10, store: ds, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',

emptyMsg: \没有记录\ }), tbar: new Ext.PagingToolbar({ pageSize: 10, store: ds, displayInfo: true,

条',

}) }); grid.render(); })

displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} emptyMsg: \没有记录\

实例一:GridPrimary.htm

data=[{id:1,name:'EasyWeb',organization:'EasyJF',homepage:'www.easyjf.com',score:'80'}, {id:2,name:'jfox',organization:'huihoo',homepage:'www.huihoo.org',score:'75'}, {id:3,name:'jdon',organization:'jdon',homepage:'www.jdon.com',score:'70'},

{id:4,name:'springside',organization:'springside',homepage:'www.springside.org.cn',score:'85'} ]; //输出列定义 var colM=new Ext.grid.ColumnModel([ {id:'id',header:\ {header:\项目名称\ {header:\开发团队\ {header:\网址\ {header:\得分\


ExtJS Grid进阶.doc 将本文的Word文档下载到电脑
搜索更多关于: ExtJS Grid进阶 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219