浏览 772 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-04-10 关键字: ext editorgridpanel record
我自己写的一个继承GRID 组件
MyEditGridv.js文件 MyEditGrid=function(){
/*配置store*/
var store=new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:'gridAction.do'}),
reader: new Ext.data.JsonReader({
totalProperty: 'totalProperty',
root: 'root'
},
[
{name: 'id'},
{name: 'name'},
{name: 'sex'},
{name: 'email'},
{name:"bornDate",type:"date",dateFormat:"Y-n-j"}
])
});
var sm = new Ext.grid.CheckboxSelectionModel();
/*配置列模型*/
var colM=new Ext.grid.ColumnModel([
sm,
{
header:"姓名",
dataIndex:"name",
sortable:true,
editor:new Ext.form.TextField()},
{ header:"性别",
dataIndex:"sex",
editor:new Ext.form.ComboBox({transform:"sexList",
triggerAction: 'all',
lazyRender:true})
},
{ header:"出生日期",
dataIndex:"bornDate",
width:120,
autoWidth:true,
renderer:Ext.util.Format.dateRenderer('Y年m月d日'),
editor:new Ext.form.DateField({format:'Y年m月d日'})},
{ header:"电子邮件",
dataIndex:"email",
sortable:true,
editor:new Ext.form.TextField()}
]);
/*重载构造器*/
MyEditGrid.superclass.constructor.call(this, {
title:"学生基本信息管理",
///height:200,
///width:600,
closable:true,
///store:store,
ds:store,
loadMask:true,
autoHeight:true,
autoWidth:true,
cm:colM,
sm:sm,
selModel: new Ext.grid.RowSelectionModel({singleSelect:true}),//设置单行选中模式, 否则将无法删除数据
autoExpandColumn:3,
tbar:[{
text: '添加用户',
//iconCls:'add',//按钮图标的CSS名称
handler : function(){// 点击按钮执行的操作
//var n = MyEditGrid.getStore().getCount();// 获得总行数
/*可以替换为弹出一个新建对象的窗口,然后保存数据*/
Ext.Msg.alert('查看选中', "您现在选中的用户其名字为:");
//this.stopEditing();// 停止编辑
//store.insert(n, p);// 插入到最后一行
//this.startEditing(n, 1);// 开始编辑1单元格
}},
{text:'xinjian',
handler:addNewUser}],
clicksToEdit:1, /*默认值是2,即双击才可编辑,等于1的时候,点击一次就可以编辑*/
bbar: new Ext.PagingToolbar({
pageSize: 10,
store: store,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
emptyMsg: "你好"
})
});
/*添加监听器*/
///this.addListener({
/// 'close':{
/// fn: function(panel){
/// ///console.log('Grid listener fired (close), arguments:',arguments);
/// panel.hide();
/// }
/// ,scope:this
/// }
///});
store.load({params:{start:0,limit:10}});
function addNewUser(){
var form = new Ext.form.FormPanel({
baseCls: 'x-plain',
labelWidth: 55,
url:'save.do',
defaultType: 'textfield',
monitorValid:true,
items: [{
fieldLabel: 'Name',
name: 'userName',
anchor:'100%' // anchor width by percentage
},{
fieldLabel: 'Password',
name: 'userPass',
anchor: '100%' // anchor width by percentage
},{
fieldLabel: 'Password',
name: 'userPass',
anchor: '100%' // anchor width by percentage
}, {
xtype: 'textarea',
hideLabel: true,
name: 'msg',
anchor: '100% -53' // anchor width by percentage and height by raw adjustment
}],
buttons:[{
text:'保存',
formBind: true,
// Function that fires when user clicks the button
handler:function(){
form.getForm().submit({
method:'POST',
waitTitle:'Connecting',
waitMsg:'Sending data...', /*wait messagebox*/
success:function(){
Ext.Msg.alert('Status', 'Save Successful!', function(btn, text){
if (btn == 'ok'){
var redirect = 'mylayout.jsp';
window.location = redirect;
}
});
},
failure:function(form, action){
if(action.failureType == 'server'){
obj = Ext.util.JSON.decode(action.response.responseText);
Ext.Msg.alert('Login Failed!', obj.errors.reason);
}else{
Ext.Msg.alert('Warning!', 'Authentication server is unreachable : ' + action.response.responseText + "abcd");
}
form.getForm().reset();
}
});
}
},
{text:'取消'}]
})
/*定义一个窗口*/
var window = new Ext.Window({
title: '晕死,不知道写什么',
width: 500,
height:300,
minWidth: 300,
minHeight: 200,
layout: 'fit',
plain:true,
bodyStyle:'padding:5px;',
buttonAlign:'center',
items: [form]
///buttons: [{
/// text: 'Send'
///},{
/// text: 'Cancel'
/// }]
});
window.show();
};
};
Ext.extend(MyEditGrid,Ext.grid.EditorGridPanel);
现在我的 var grids = new MyEditGrid();是放在别的页面 但是我在GRID上加了个按钮,点击的时候获得选择的记录,handler : function(){// 点击按钮执行的操作 //var n = MyEditGrid.getStore().getCount();// 获得总行数 这里,我通过什么来得到记录呢?这里没有grids对象哦 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-04-10
参考一下官方示例FEED-Viewer,应该会有收获
|
|
| 返回顶楼 | |
|
时间:2008-04-11
fyshi 写道 参考一下官方示例FEED-Viewer,应该会有收获
官方自带的那个grid好像没有带topbar的啊 |
|
| 返回顶楼 | |
|
时间:2008-04-11
这个问题搞定了,给加个id属性
然后var record = Ext.get('id的属性').getSelect…… 可还有一个问题呢,现在关掉含有grid的那个tab页,再点击打开的时候,怎么有出现空白呢?tab页会打开,但是里面没有内容哦 |
|
| 返回顶楼 | |
|
时间:2008-05-15
laitaogood 写道 可还有一个问题呢,现在关掉含有grid的那个tab页,再点击打开的时候,怎么有出现空白呢?tab页会打开,但是里面没有内容哦 关掉tab页的时候,方法使用tabpanel.destroy(),销毁面板,再加载就会出现grid里面的内容了 |
|
| 返回顶楼 | |




