Ext.GridPanel 用法总结(一)—— Grid基本用法
Ext.GridPanel 用法总结(一)—— Grid基本用法
摘自:http://www.cnblogs.com/luluping/archive/2009/08/01/1536645.html
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();
}
}
]
}
);
Ext.GridPanel 用法总结(一)—— Grid基本用法的更多相关文章
- extjs grid renderer用法
extjs grid renderer用法 摘自:http://www.cnblogs.com/ljian/archive/2011/10/27/2226959.html var cm = new E ...
- 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...
- extjs grid renderer用法【转载】
今天在做项目时,需要在列表中的某列添加一个超链接,首先要取得当前选中行的数据,判断数据类型,然后链接到不同的页面,研究下.发现ExtJs提供了一个很强的方法如下: var cm = new Ext.g ...
- 转:Ext GridPanel根据条件显示复选框
Ext GridPanel实现复选框选择框: var selectModel = new Ext.grid.CheckboxSelectionModel({ singleSelect : false ...
- 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。
子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...
- entrySet用法 以及遍历map的用法
entrySet用法 以及遍历map的用法 keySet是键的集合,Set里面的类型即key的类型entrySet是 键-值 对的集合,Set里面的类型是Map.Entry 1.keySet( ...
- LOG4NET用法(个人比较喜欢的用法)
LOG4NET用法(个人比较喜欢的用法) http://fanrsh.cnblogs.com/archive/2006/06/08/420546.html
- 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库
7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库 三种方法 rpm工具----->类型windows下的exe程序 ...
- 72. js EXTJS grid renderer用法
转自:https://blog.csdn.net/shancunxiaoyazhi/article/details/22156083 renderer : Function (可选的)该函数用于加工单 ...
随机推荐
- [原创]android使用代码生成LayerDrawable的方法和注意事项
为了有更好的UI体验,一般我们会把button.textview等控件的背景设置上阴影.传统的做法是美工提供一张具有阴影效果的nine patch图,然后将其在xml文件中添加到background属 ...
- 阅读《Effective C++》系列
<Effective C++>条款07:为多态基类声明virtual析构函数 这样做主要是为了防止内存泄漏,见我hexo博客. C++的虚析构函数 <Effective C++> ...
- MPEG2/TS 包结构简述
TS 包由以下3部分组成: 包头: 4字节, 同步,识别,检错和加密用 自适配域:可选 包数据:最大184字节(不存在自适配域) 4字节 184字节 包头 自适配域 包数据 4字节包头结构: 1字节 ...
- 后台增加一个左侧列表菜单menu菜单的方法
Ecshop 后台增加一个左侧列表菜单menu菜单需要修改三个文件:/admin/includes/inc_menu.php/admin/includes/inc_priv.php/languages ...
- android 开发 - 对图片进行虚化(毛玻璃效果,模糊)
概述 IPAD,IPHONE上首页背景的模糊效果是不是很好看,那么在 Android中如何实现呢.我通过一种方式实现了这样的效果. 开源库名称:anroid-image-blur 一个android ...
- [英] 推荐 15 个 jQuery 选择框插件
jQuery Selectbox Plugins let you create beautiful and eye catching select box for your websites inst ...
- mssql表名列名对应语句
if exists (select * from tempdb..sysobjects where name like '#magic%') drop table #magic go select a ...
- Android SDK开发包国内下载地址
不知道是因为最近kaihui还是怎么的,打开android sdk官方网站特别的慢,想下载最新版本的platform几乎变成不可能完成的任务,不知道为什么Google不像Apache那样在各国设立镜像 ...
- 解析Javascript中大括号“{}”的多义性
JS中大括号有四种语义作用 语义1,组织复合语句,这是最常见的 复制代码 代码如下: if( condition ) { //... }else { //... } for() { //. ...
- easyui datagrid to excel
$.extend($.fn.datagrid.methods, { toExcel: function(jq, filename){ return jq.each(function(){ var ur ...