0
点赞
收藏
分享

微信扫一扫

Ext.GridPanel 用法总结(一)—— Grid基本用法


Ext.GridPanel 用法总结(一)—— Grid基本用法

GridPanel类是基于基础列表接口具代表性的主要实现类。也是最常用的Ext组件之一。
一:首先定义grid的数据源

view plaincopy to clipboardprint? 

 //初始化Ext状态管理器,在Cookie中记录用户的操作状态,如果不启用,象刷新时就不会保存当前的状态,而是重新加载 

 Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); 

 Ext.QuickTips.init(); //显示提示信息 

 var pageSize=10;//定义每页显示的行数 

 //定义数据字段 

 var fields = ["journal_id","journal_name","journal_organizer","journal_level","is_core"]; 

//定义数据源 

 journal_store = new Ext.data.Store({ 

 // 获取数据 

 proxy:new Ext.data.HttpProxy( 

 { 

 url:"Data/SystemManage/Journal/JournalsInfo.aspx",//获取数据的后台地址 

 method:"POST" 

 }), 

 //解析json 

 reader:new Ext.data.JsonReader( 

 { 

 fields:fields, 

 root:"data", 

 id:"roleId", 

 totalProperty:"totalCount" //总的数据条数 

 }) 

 }); 

//根据参数加载数据 

 journal_store.load({params:{journal_name:journal_name,journal_organizer:journal_organizer,journal_level:journal_level,is_core:is_core,start:0,limit:pageSize}}); 

 //初始化Ext状态管理器,在Cookie中记录用户的操作状态,如果不启用,象刷新时就不会保存当前的状态,而是重新加载 

 Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); 

 Ext.QuickTips.init(); //显示提示信息 

 var pageSize=10;//定义每页显示的行数 

 //定义数据字段 

 var fields = ["journal_id","journal_name","journal_organizer","journal_level","is_core"]; 

//定义数据源 

 journal_store = new Ext.data.Store({ 

 // 获取数据 

 proxy:new Ext.data.HttpProxy( 

 { 

 url:"Data/SystemManage/Journal/JournalsInfo.aspx",//获取数据的后台地址 

 method:"POST" 

 }), 

 //解析json 

 reader:new Ext.data.JsonReader( 

 { 

 fields:fields, 

 root:"data", 

 id:"roleId", 

 totalProperty:"totalCount" //总的数据条数 

 }) 

 }); 

//根据参数加载数据 

 journal_store.load({params:{journal_name:journal_name,journal_organizer:journal_organizer,journal_level:journal_level,is_core:is_core,start:0,limit:pageSize}});


二:定义其选择列、行号、列等

view plaincopy to clipboardprint? 

//--------------------------------------------------列选择模式 

 var sm = new Ext.grid.CheckboxSelectionModel({ 

 dataIndex:"roleId" 

 }); 

 var index= new Ext.grid.RowNumberer();//行号 

 //--------------------------------------------------列头 

 var colModel = new Ext.grid.ColumnModel 

 ( 

 [ 

 index, 

 sm, 

 {header:"序号",width:100,dataIndex:'journal_id',sortable:true}, 

 {header:"期刊名称",width:80,dataIndex:'journal_name',sortable:true}, 

 {header:"主办单位",width:110,dataIndex:'journal_organizer',sortable:true}, 

 {header:"期刊级别",width:100,dataIndex:'journal_level',sortable:true}, 

 {header:"是否核心",width:110,dataIndex:'is_core',sortable:true}, 


 {header:"操作",width:100,dataIndex:'journal_id',sortable:true,renderer:delfun} 

 ] 

 ); 

//--------------------------------------------------列选择模式 

 var sm = new Ext.grid.CheckboxSelectionModel({ 

 dataIndex:"roleId" 

 }); 

 var index= new Ext.grid.RowNumberer();//行号 

 //--------------------------------------------------列头 

 var colModel = new Ext.grid.ColumnModel 

 ( 

 [ 

 index, 

 sm, 

 {header:"序号",width:100,dataIndex:'journal_id',sortable:true}, 

 {header:"期刊名称",width:80,dataIndex:'journal_name',sortable:true}, 

 {header:"主办单位",width:110,dataIndex:'journal_organizer',sortable:true}, 

 {header:"期刊级别",width:100,dataIndex:'journal_level',sortable:true}, 

 {header:"是否核心",width:110,dataIndex:'is_core',sortable:true}, 


 {header:"操作",width:100,dataIndex:'journal_id',sortable:true,renderer:delfun} 

 ]


);
三:定义表格grid

view plaincopy to clipboardprint? 

journal_grid = new Ext.grid.GridPanel 

 ( 

 { 

 id:'id_journal_grid', //grid的id 

 autoHeight:true, 

 autoWidth:true, 

 sm:sm, 

 cm:colModel, //行列 

 loadMask:true, 


 store:journal_store, //数据源 


 trackMouseOver:true, //鼠标特效 

 autoScroll:true, 

 stripeRows:true, 

 viewConfig:{ 

 columnsText:"显示/隐藏列", 

 sortAscText:"正序排列", 

 sortDescText:"倒序排列", 

 forceFit:true 

 }, 

journal_grid = new Ext.grid.GridPanel 

 ( 

 { 

 id:'id_journal_grid', //grid的id 

 autoHeight:true, 

 autoWidth:true, 

 sm:sm, 

 cm:colModel, //行列 

 loadMask:true, 


 store:journal_store, //数据源 


 trackMouseOver:true, //鼠标特效 

 autoScroll:true, 

 stripeRows:true, 

 viewConfig:{ 

 columnsText:"显示/隐藏列", 

 sortAscText:"正序排列", 

 sortDescText:"倒序排列", 

 forceFit:true 

 }, 

四:定义工具栏 

view plaincopy to clipboardprint? 

tbar: //工具条 

 [ 

 { 

 text: '刷新', 

 cls: 'x-btn-text-icon details', 


 handler: function(btn, pressed) 

 {//重置查询条件 

 Ext.getCmp("QueryForm").findById('journalName').reset(); 

 Ext.getCmp("QueryForm").findById('journalOrganizer').reset(); 

 Ext.getCmp("QueryForm").findById('journalLevel').reset(); 

 Ext.getCmp("QueryForm").findById('JournalIsCore').reset(); 

 journal_store.load({params:{start:0,limit:pageSize}}); 

 //数据源从新加载 

 } 

 }, 

 '-', 

 { 

 text: '添加', 

 handler: function(btn, pressed) 

 { 

 AddJournalInfo(); //添加新的角色信息 


 } 

 }, '-', 

 { 

 text: '编辑', 

 handler: function(btn, pressed) 

 { 

 var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections();//选择行的个数 

 if(row.length==0) 

 { 

 Ext.Msg.alert("提示信息","请您至少选择一个!"); 

 } 

 else if(row.length>1){ 

 Ext.Msg.alert("提示信息","对不起只能选择一个!"); 

 }else if(row.length==1) 

 { 

 EditJournalInfo(row[0]);//传行一行记录直接加载 编辑角色信息 

 } 

 } 

 }, '-', 

 { 

 text: '删除', 

 handler: function(btn, pressed) 

 { 

 var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections(); //获取选中的行 

 if(row.length==0) 

 { 

 Ext.Msg.alert("提示信息","请您至少选择一个!"); 

 } 

 else{ 

 Ext.Msg.confirm("提 示!","您确定要删除吗?",function(btn){ 

 if(btn=="yes") 

 { 


 DeleteJournalInfo(row);//删除角色信息 

 } 

 else 

 { 


 } 

 }) 

 } 

 } 

 },'-', 

 { 

 text: '综合查询', 

 handler: function(btn, pressed) 

 { 


 Ext.getCmp("QueryForm").toggleCollapse(true);//将formset展开 


 } 

 }, '-' 

 ] 

tbar: //工具条 

 [ 

 { 

 text: '刷新', 

 cls: 'x-btn-text-icon details', 


 handler: function(btn, pressed) 

 {//重置查询条件 

 Ext.getCmp("QueryForm").findById('journalName').reset(); 

 Ext.getCmp("QueryForm").findById('journalOrganizer').reset(); 

 Ext.getCmp("QueryForm").findById('journalLevel').reset(); 

 Ext.getCmp("QueryForm").findById('JournalIsCore').reset(); 

 journal_store.load({params:{start:0,limit:pageSize}}); 

 //数据源从新加载 

 } 

 }, 

 '-', 

 { 

 text: '添加', 

 handler: function(btn, pressed) 

 { 

 AddJournalInfo(); //添加新的角色信息 


 } 

 }, '-', 

 { 

 text: '编辑', 

 handler: function(btn, pressed) 

 { 

 var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections();//选择行的个数 

 if(row.length==0) 

 { 

 Ext.Msg.alert("提示信息","请您至少选择一个!"); 

 } 

 else if(row.length>1){ 

 Ext.Msg.alert("提示信息","对不起只能选择一个!"); 

 }else if(row.length==1) 

 { 

 EditJournalInfo(row[0]);//传行一行记录直接加载 编辑角色信息 

 } 

 } 

 }, '-', 

 { 

 text: '删除', 

 handler: function(btn, pressed) 

 { 

 var row=Ext.getCmp("id_journal_grid").getSelectionModel().getSelections(); //获取选中的行 

 if(row.length==0) 

 { 

 Ext.Msg.alert("提示信息","请您至少选择一个!"); 

 } 

 else{ 

 Ext.Msg.confirm("提 示!","您确定要删除吗?",function(btn){ 

 if(btn=="yes") 

 { 


 DeleteJournalInfo(row);//删除角色信息 

 } 

 else 

 { 


 } 

 }) 

 } 

 } 

 },'-', 

 { 

 text: '综合查询', 

 handler: function(btn, pressed) 

 { 


 Ext.getCmp("QueryForm").toggleCollapse(true);//将formset展开


}
}, '-'
]
五:设置分页

view plaincopy to clipboardprint? 

//分页 

 bbar:new Ext.PagingToolbar({ 

 store:journal_store, //数据源 

 pageSize:pageSize, 

 //显示右下角信息 

 displayInfo:true, 

 displayMsg:'当前记录 {0} -- {1} 条 共 {2} 条记录', 

 emptyMsg:"No results to display", 

 prevText:"上一页", 

 nextText:"下一页", 

 refreshText:"刷新", 

 lastText:"最后页", 

 firstText:"第一页", 

 beforePageText:"当前页", 

 afterPageText:"共{0}页" 

 }) 

 }); 

//分页 

 bbar:new Ext.PagingToolbar({ 

 store:journal_store, //数据源 

 pageSize:pageSize, 

 //显示右下角信息 

 displayInfo:true, 

 displayMsg:'当前记录 {0} -- {1} 条 共 {2} 条记录', 

 emptyMsg:"No results to display", 

 prevText:"上一页", 

 nextText:"下一页", 

 refreshText:"刷新", 

 lastText:"最后页", 

 firstText:"第一页", 

 beforePageText:"当前页", 

 afterPageText:"共{0}页" 

 }) 

 });


六:设置右键菜单

view plaincopy to clipboardprint? 

//为右键菜单添加事件监听器 

 journal_grid.addListener('rowcontextmenu',rightClickFn); 

 var rightClick = new Ext.menu.Menu 

 ( 

 { 

 items: 

 [ 

 { 

 id: 'rMenu1', 

 handler:AddJournalInfo,//点击后触发的事件 

 text: '增加角色' 

 }, 

 { 

 id:'rMenu2', 

 text:'编辑角色', 

 handler:function() 

 { 

 JournalEdit(); 

 } 

 }, 

 { 

 id:'rMenu3', 

 text:'删除角色', 

 handler: function() 

 { 

 JournalDelete(); 

 } 

 } 


 ] 

 } 

 );

举报

相关推荐

grid基本用法,看完就会

awk命令基本用法(一)

Git基本用法

Axios基本用法

Vue基本用法

0 条评论