extjs项目整理二

[size=xx-large]girdpanel curd[/size]

/**
* viewConfig作用在grid's UI试图上的配置项对象, 任何Ext.grid.GridView可用的配置
*选项都可在这里指定。
* forceFit True表示为自动展开/缩小列的宽度以适应grid的宽度,这样就不会出现水
*平的滚动条。ColumnModel中任意的width的设置可覆盖此配置项。
**/
TabPanelGrid = Ext.extend(Ext.grid.GridPanel, {
initComponent : function() {
if(!this.csm){
this.sm = new Ext.grid.CheckboxSelectionModel();
}else{
this.sm = this.csm;
}
//this.autoHeight = true;
this.stripeRows = true;
//this.border = false;
this.viewConfig = {
forceFit : true
};
this.createColumns();
this.createBbar();
this.createtbar();
TabPanelGrid.superclass.initComponent.call(this);
}
}



[size=xx-large]CreateColumns[/size]

/**
* dataIndex(可选的)数据索引,相当于Grid记录集(Ext.data.Store里面的
* Ext.data.Record )*中字段名称,字段的值用于展示列里面的值(column's value)。*如不指定,Record*的数据列中的索引将作为列的索引。
**/
createColumns : function() {
var cols = [];
cols.push(this.sm);
for ( var i = 0; i < this.cols.length; i++) {
var f = this.cols[i];
if(f.dataIndex)cols.push(f);
}
this.columns = cols;
}


[size=xx-large]createBbar[/size]


createBbar : function() {
this.bbar = new Ext.PagingToolbar( {
displayInfo : true,
store : this.store
});
}



[size=xx-large]createTbar[/size]

createtbar : function() {
this.tbar = new Ext.Toolbar( {
items : [ "-", {
text : '增加',
handler : this.createRecord.createDelegate(this)
}, "-", {
text : '修改',
handler : this.updateRecord.createDelegate(this)
}, "-", {
text : '删除',
handler : this.removeRecord.createDelegate(this)
}, "-", new Ext.ux.form.SearchField( {
store : this.store,
width : 150
}) ]
});
}



[size=xx-large]createRecord[/size]

/**
*this.cols 是全局cols(初始化时的那个cols)
*cols 是函数里面声明的cols
**/
createRecord : function() {
this.showWindow();
form = this.getForm();
form.baseParams = {
create : true
};
//表单置空
var emptyRecord = {};
for ( var i = 0; i < this.cols.length; i++) {
var f = this.cols[i].dataIndex;
emptyRecord[f] = '';
}
form.setValues(emptyRecord);
}


[size=xx-large]updateRecord[/size]

updateRecord : function() {
var r = this.getSelectedRecord();
if (r != false) {
this.showWindow();
this.form = this.getForm();
this.form.baseParams = {create : false};
this.form.loadRecord(r);
}
}



[size=xx-large]getSelectedRecord[/size]


/**
*getSelectionModel返回grid的RowSelectionModel
*getSelections() : Array
*返回以选取的纪录。Returns the selected records
*getSelected() : Record
*返回选区中的第一个记录。
**/
getSelectedRecord : function() {
var sm = this.getSelectionModel();
if (sm.getCount() == 0) {
Ext.Msg.alert('信息', '请选择记录!');
return false;
} else {
return sm.getSelections()[0];
}
}



[size=xx-large]getForm[/size]

/**
*getForm() : ext.form.BasicForm
*返回该面板包含的Form
**/
getForm : function() {
return this.getFormPanel().getForm();
}



[size=xx-large]getFormPanel[/size]


getFormPanel : function() {
if (!this.gridForm) {
this.gridForm = this.createForm();
}
return this.gridForm;
}



[size=xx-large]CreateForm[/size]


/**
*this.cols 初始化得到
* trackResetOnLoad : Boolean
*如果为true,则表单对象的form.reset()方法重置到最后一次加载的数据或*setValues()数据,以相对于一开始创建表单那时的数据。
**/
createForm : function() {
var items = new Array();
for ( var i = 0; i < this.cols.length; i++) {
var object = this.cols[i].formItem;
if(object){
items.push(object);
}
}
var form = new Ext.form.FormPanel( {
frame : true,
defaultType : 'textfield',
buttonAlign : 'center',
labelAlign : 'rigth',
labelWidth : 70,
layout : 'form',
trackResetOnLoad : true,
url : this.formUrl,
reader : this.store.reader,
items : items,
buttons : [ {
text : '提交',
handler : this.submintRecord.createDelegate(this)
}, {
text : '重置',
handler : function() {
form.getForm().reset();
}
} ]
});
return form;
}



[size=xx-large]submintRecord[/size]

/**
* beginEdit() 属于record属性
* 进入编辑。编辑期间,没有与所在的store任何关联的事件。
* endEdit()
* 结束编辑。如数据有变动,则会通知所在的store。
**/
submintRecord : function() {
var form = this.getForm();
var values = form.getFieldValues();
if(!form.isValid()) return;
var self = this;
if (form.baseParams.create) {
var data = new Ext.data.Record();
for ( var name in values) {
data.set(name,values[name]);
}
} else {
var r = this.getSelectedRecord();
r.beginEdit();
for ( var name in values) {
r.set(name, values[name]);
}
r.endEdit();
}
var tag = form.submit({
success : function(form,action){
if(action.result){
if(form.baseParams.create)self.store.load();
};
},
failure : function(form,action){
Ext.Msg.alert("提示","操作错误!您可能没有权限或会话过期!");
}
});
this.window.hide();
}



[size=xx-large]removeRecord[/size]

removeRecord : function() {
var r = this.getSelectedRecord();
var self = this;
if (r != false) {
Ext.Msg.confirm("提示","是否确定删除!",function(btn){
if(btn == 'yes'){
Ext.Ajax.request({
url:self.deleteUrl,
params: { id: r.id},
success:function(response, opts){
self.store.load();
try{
var object = Ext.util.JSON.decode(response.responseText);
if(object && !object.success){
Ext.Msg.alert("错误!",object.msg);
}
}catch(e){

}
},
failure : function(response,Optional){
Ext.Msg.alert("错误!",response.responseText);
}
});
}
});
}
}



[size=xx-large]showWindow[/size]

/**
*closeAction : String
*当关闭按钮被点击时执行的动作。“close”缺省的动作是从DOM树中移
*除window并彻底加以销毁。“hide”是另外一个有效的选项,只是在视
*觉上通过偏移到零下(negative)的区域的手法来隐藏,这样使得window可
*通过show 的方法再显示.
*modal : Boolean
*True 表示为当window显示时对其后面的一切内容进行遮罩,false表示为
*限制对其它UI元素的语法(默认为 false)。
*constrain : Boolean
*True表示为将window约束在视图中显示,false表示为允许window在视
*图之外的地方显示(默认为false)。可选地设置constrainHeader使得头
*部只被约束。
*shim : Boolean
*False表示为禁止用iframe填充,有些浏览器可能需要设置(默认为true)
*。注意此项只当floating = true时有效。
**/
showWindow : function() {
if (!this.window) {
var fromPanel = this.getFormPanel();
var win = new Ext.Window( {
title : 'user information',
closeAction : 'hide',
modal : true,
constrain : true,
shim : false,
width : 300,
items : [ fromPanel ]
});
win.show();
this.window = win;
} else {
this.window.show();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值