Ext.onReady(function(){
Ext.QuickTips.init();
Ext.define('Group', {
extend: 'Ext.data.Model',
fields: [
'groupId','name', 'contents'
]
});
var store_grid_group = Ext.create('Ext.data.Store', {
pageSize: 4,
model: 'Group',
remoteSort: true,
proxy: {
type:'ajax',
url:'../limits/listgroupbypage!listGroupByPage',
reader:{
type:'json',
root:'data',
totalProperty: 'totalCount'
},
simpleSortMode: true
},
autoLoad:true
});
var form = new Ext.FormPanel({
layout: {
type: 'vbox',
align: 'stretch'
},
frame: true,
border: false,
url: '../limits/saveqx!addGroup',
buttonAlign:'center',
bodyPadding: 10,
defaultType: 'textfield',
fieldDefaults: {
labelAlign: 'left',
labelWidth: 100,
labelStyle: 'font-weight:bold'
},
//默认元素属性设置
items: [{
name: 'name',
fieldLabel: '权限组名称',
allowBlank: false
},{
xtype: 'textareafield',
name:'contens',
fieldLabel: '权限组描述',
margins: '0',
allowBlank: false
}],
buttons:[{
text:'保存',
handler:function(){
if (this.up('form').getForm().isValid()) {
form.submit({
success: function(form, action) {
form.reset();
win.hide();
store_grid_group.load();
},
failure: function(form, action) {
Ext.Msg.alert('Failed');
}
});
}
}
},{
text:'放弃',handler:function(){
this.up('form').getForm().reset();
this.up('window').hide();
}
}]
})
var form_edit = new Ext.FormPanel({
layout: {
type: 'vbox',
align: 'stretch'
},
frame: true,
border: false,
url: '../limits/editgroup!updateGroup',
buttonAlign:'center',
bodyPadding: 10,
defaultType: 'textfield',
fieldDefaults: {
labelAlign: 'left',
labelWidth: 100,
labelStyle: 'font-weight:bold'
},
//默认元素属性设置
items: [{
name: 'groupId',
fieldLabel: '编号',
hidden: true
},{
name: 'name',
fieldLabel: '全选组名称',
allowBlank: false
},{
xtype: 'textareafield',
name:'contents',
fieldLabel: '权限组描述',
margins: '0',
allowBlank: false
}],
buttons:[{
text:'修改',
handler:function(){
if (this.up('form').getForm().isValid()) {
form_edit.submit({
success: function(form, action) {
form.reset();
win_edit.hide();
store_grid_group.load();
},
failure: function(form, action) {
Ext.Msg.alert('Failed');
}
});
}
}
},{
text:'放弃',handler:function(){
this.up('form').getForm().reset();
this.up('window').hide();
}
}]
})
var win = Ext.create('widget.window', {
layout:'fit',
title: '添加',
closable: false,
closeAction: 'hide',
width: 400,
minWidth: 350,
height: 300,
modal: true,
items: form
});
var win_edit = Ext.create('widget.window', {
layout:'fit',
title: '修改',
closable: false,
closeAction: 'hide',
width: 400,
minWidth: 350,
height: 300,
modal: true,
items: form_edit
});
//添加功能
var add=function(data){
win.show();
}
//删除功能
var del=function(o){
var grid=o.ownerCt.ownerCt;
var data=grid.getSelectionModel().getSelection();
if(data.length==0){
Ext.Msg.alert('提示','至少选一条');
}else{
Ext.MessageBox.confirm('确认', '确定要删除吗?',function(btn){
if(btn=='yes'){
var st=grid.getStore();
var ids=[];
Ext.Array.each(data,function(record){
ids.push(record.get('groupId'));
});
//传给后台
Ext.Ajax.request({
url:'../limits/delgroup!delGroup',
params:{ids:ids.join(',')},
method:'post',
timeout:2000,
success:function(){
st.remove(data);//删除选中的行
},
failure:function(){
Ext.MessageBox.alert("失败");
}
});
}
});
}
}
//修改功能
var edit=function(o){
var grid=o.ownerCt.ownerCt;
var data=grid.getSelectionModel().getSelection();
if(data.length!=1){
Ext.Msg.alert('提示','请选择一条记录');
}else{
var st=grid.getStore();
var ids=[];
Ext.Array.each(data,function(record){
ids.push(record.get('groupId'));
});
//form ajax加载数据
form_edit.getForm().load({
url:'../limits/getupdategroup!getUpdateGroup',
params:{ids:ids.join(',')},
method:'GET',
timeout:2000,
success:function(data){
win_edit.show();
},
failure:function(){
Ext.MessageBox.alert("失败");
}
})
}
}
var query=function(o){
var grid=o.ownerCt.ownerCt;
}
var columns=[
{header:'权限组名称',dataIndex:'name'},
{text:'权限组描述',dataIndex:'contents',width:100},
{
xtype:'actioncolumn',
items: [{
text:'权限',
icon:'../commons/img/btn_qx.png',
tooltip: '权限',
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
alert("Edit " + rec.get('groupId'));
}
}]
}
];
// create the Grid
var grid_group = Ext.create('Ext.grid.Panel',{
width:'100%',
region:"center",
forceFit:true,//true自动填充空白处,即宽度占满column的width会失效,默认false
columns:columns,
tbar:[
{xtype:'button',text:'添加',iconCls:'btn_new',handler:add},
{xtype:'button',text:'编辑',id:'btn_edit',iconCls:'btn_edit',handler:edit},
{xtype:'button',text:'删除',id:'btn_delete',iconCls:'btn_del',handler:del}
],
dockedItems:[{
xtype:'pagingtoolbar',
store:store_grid_group,//用于分页栏显示总条数,页数等信息
dock:'bottom',
displayInfo:true
}],
selType:'checkboxmodel',//添加复选框
multiSelect:true,//多选,默认单选
store:store_grid_group
});
var queryForm = new Ext.FormPanel({
border:false,
layout:'hbox',
height:10,
flex:1,//如果所在容器时vbox占满高,如果是hbox占满宽
height:35,
frame:true,
border:false,
items:[{
xtype:'textfield'
},{
text:'查询',handler:function(){alert('查询')},
xtype:'button'
}]
});
var vpanel=Ext.create('Ext.Panel', {
region:'north',
height:60,
layout: {
type: 'vbox',
align: 'left'
},
items: [{html:'当前位置',border:false,id:'path',height:28},queryForm]
});
var vp=new Ext.Viewport({
layout:"border",
items:[vpanel,grid_group]
});
})
详细解决方案
extjs4 增删节查grid
热度:171 发布时间:2012-06-27 14:20:09.0
相关解决方案
- Extjs grid 失去选中行的列数据
- ExtJS4.0 文件上传的返回JSON字符串不对,该如何解决
- Ext.ux.grid.RowEditor 的使用出现有关问题 。 求大神指点
- ()extjs4.0 mvc模式中,在controller中获取view层的元素对象
- extjs grid 怎么实现 行选中变色
- DevExpress.XtraGrid.Views.Grid.GridView 怎么自增新行
- Grid++Report 显示有关问题
- 有关MVC3中用到Html.Telerik().Grid()的绑定有关问题, 急
- ComponentArt:Grid 单击第二页时 报the data could not be loaded,该如何处理
- 关于dv grid 的有关问题
- grid++report Web插件有破解版本吗?解决思路
- GRID 修改即显示的有关问题
- vfp grid 会粘贴excel 内容吗
- grid 怎么列宽固定,不可拖拽
- Grid 中加入复选框后的奇怪有关问题
- 在表单上点击按钮生成表内数据后能同时更新到表格(grid)不,该怎么处理
- grid 列只读解决方案
- grid checkbox 获取checkbox值,该怎么处理
- grid,combo在表单的有关问题
- VFP GRID 刷新影响其他控件显示的有关问题
- GRID:怎么…
- extjs4.0 多条件检索
- ExtJs4 将Grid的状态保留到服务器端
- extjs grid 动态设置行单元格可编辑
- EXT grid 表头与单元格内容有关问题
- ext grid CheckboxSelectionModel动态控制checkbox显示
- EXTJS4 tabpanel选项卡里面的面板不显示滚动条
- grid view遇到有关问题了
- js画图开发库-mxgraph-[grid-格子.html]
- ExtJs4.1的有关问题,求大牛帮忙看下