首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web开发 >

ext弹窗传值有关问题

2012-07-28 
ext弹窗传值问题我要用ext打开一个选择对话框,在打开这个选择对话框都要带入一个参数.然后再打开这个对话

ext弹窗传值问题
我要用ext打开一个选择对话框,在打开这个选择对话框都要带入一个参数.然后再打开这个对话框里面能取到这个传来的参数.
如: 

JScript code
win = new Ext.ux.MsgWidow({  items:[ {boxLabel: '业务大类分析 ',rType:'global_bigbiz'},{boxLabel: '业务小类分析 ',rType:'global_littlebiz'}] });


我在win.show();的时候能不能传入一个参数?然后再items里面rType:"global_bigbiz"+参数;这样子取到

请问这样改怎么实现?或者该如何实现请各位帮忙解决!谢谢


[解决办法]
给你个例子,....
双击表格中的一条记录时,触发的事件.传递来给你个参数到新的窗体,可以将两个参数进行封装,传个object过去即可.
this.grid.on('rowdblclick',function(_grid,_index){======================双击这条记录时.
_grid.getSelectionModel().selectRow(_index);
//这里可以取得你要传递的值,然后进行封装
var obj = new Object();
obj.pmPk=this.getSelectValue('aPk');
obj.pmAmount=this.getSelectValue('aNum');
this.fetchWin.show(obj);======================封装的对象作为参数传递过去
},this);


//方法.获得选中的记录的信息
getSelectionModel : function() {
return this.getGrid().getSelectionModel();
},
getSelectRecord : function() {
if (!this.hasSelect())
return null;
return this.getSelectionModel().getSelected();
},
//通过字段名来获取它对应的值
getSelectValue : function(_name) {
if (this.hasSingleSelect()) {
return this.getSelectRecord().get(_name);
}
},

//=============================在新的窗口中.
/**
 * 弹出框
 *
 * @class
 * @extends Ext.util.Observable
 */
var FetchWin = Ext.extend(Ext.util.Observable, {

win : null,

form : null,

_init : function(_parp) {============窗体的构造函数要接受传过来的参数object
if (this.win != null){
return;
}
this.form = new Ext.FormPanel({
labelAlign : 'right',
bodyStyle : 'padding:5px',
layout : 'form',
autoScroll : true,
frame : true,
border : false,
buttonAlign : 'center',
items : [
{
xtype : 'textfield',
fieldLabel : '人',
name : 'Person',
width : 105
}, {
xtype : 'textfield',
fieldLabel : '数量',
name : 'Num',
id : 'fetchNum',
emptyText: _parp.aNum,===============将传递的参数中的值放在这里,,
width : 105

}],

buttons : [{
text : '确定',
handler : function() {
this.save();
},
scope : this
}, {
text : '取消',
handler : function() {
this.hide();
},
scope : this
}]
})


this.win = new Ext.Window({
layout : 'form',
width : 250,
height : 230,
plain : false,
border : false,
bodyBorder : false,
closeAction : 'hide',
items : this.form
})
},
//点击确定之后,的函数===================
save:function(){
Ext.Ajax.request({
url:'abcd_adde.do',=============跳转到一个action
params:{====================将本窗口中的参数传递到action中
aNum:_parp.aNum
pmPk: _parp.aPk

},
scope:this,
method:'post'

})

},

hide : function() {
this.win.hide();
},

show : function(_parp) {
this._init(_parp);============进行窗体的初始化.接受参数.
this.win.show();
}
});
[解决办法]
在封装一下就可以了

比如:
function getWin(title){
var win=new Ext.Window({
title:title;
});
return win;
}

getWin('test').show();

热点排行