我可以在Ext JS中创建一个“确认框”,如下所示:
使用以下代码:
...
listeners: {
'afterrender' : function(p) {
p.header.on('click', function(e, h) {
Ext.MessageBox.confirm('Confirm', 'Are you sure you want to EDIT this?', function(btn) {
var button_answer = new Ext.Panel({
title: 'Invoice Address',
width: 290,
height: 200,
html: 'you clicked the ' + btn + ' button for EDIT',
frame: true,
border: true,
header: true
});
replaceComponentContent(small_box_upper_left, button_answer, true);
});
}, p, {
delegate: '.panel_header_icon2',
stopEvent: true
});
},
...
**如何创建这样一个背景变暗的弹出窗口,但它不是MessageBox,而是一个Ext.FormPanel?**例如,如何将此代码放入背景变暗的弹出窗口中?
new Ext.FormPanel({
frame:true,
labelWidth: 90,
labelAlign: 'right',
title: 'Orderer Information',
bodyStyle:'padding:5px 5px 0',
width: 300,
height: 600,
autoScroll: true,
itemCls: 'form_row',
defaultType: 'displayfield',
items: [{
fieldLabel: 'Customer Type',
name: 'customerType',
allowBlank:false,
value: 'Company'
},{
fieldLabel: 'Company',
name: 'company',
value: 'The Ordering Company Inc.'
},{
fieldLabel: 'Last Name',
name: 'lastName',
value: 'Smith'
}]
});
3条答案
按热度按时间w9apscun1#
您可以使用窗口来完成此操作,因为MessageBox没有任何配置来添加面板。
要显示掩码,只需将配置选项modal设置为true。
qfe3c7zg2#
我发现了一个非常简单的方法来扩展/修改MessageBox类,以允许您传入将在正文中显示的自定义组件。
创建自己的自定义窗口也是完全有效的,但是......要使它的外观和行为与MessageBox完全相同是一件相当麻烦的事情。此方法可以用最少的工作量保持相同的外观和感觉。
这样做的缺点是有点像使用属性的黑客(promptContainer),它不是公共API的一部分。因此, Sencha 可以随时更改它。但是,与让自定义窗口的外观和行为与MessageBox完全相同的替代方案相比,(它的外观和行为也可能在未来被 Sencha 改变),或者为你的应用程序中的每一个对话框滚动你自己的Windows系统,我不介意。
zed5wv103#
这很简单!