【发布时间】:2017-06-13 15:38:01
【问题描述】:
- 我有一个
users网格,双击users网格我在窗口模式弹出窗口中显示更新用户表单。 - 在
users网格的 dblClick 上,我正在添加user-detail-window到mainView。 -
user-detail-window包含一个user-detail表单,其中包含名为active的复选框字段
- 如果 user_abc 未处于活动状态,则在打开 user_abc 的更新表单后第一次,其显示未选中的
active字段(此 是正确的行为,user_abc 已停用)- 如果您打开任何其他用户记录(处于活动状态)然后再次打开 user_abc(这已停用),它会显示
active已选中(而不是显示未选中)
i) 我在用户更新表单中有一个复选框字段,即我的 UserDetail 视图
Ext.define('TestCMS.view.UserDetail', {
extend: 'Ext.form.Panel',
alias: 'widget.user-detail',
itemId: 'user-detail',
items: [
{
xtype: 'combobox',
name: 'locale',
fieldLabel: 'Taal',
store: 'i18n.Language',
displayField: 'iso639',
valueField: 'iso639',
autoLoad: true,
forceSelection: true,
editable: false,
triggerAction: 'all',
bind: '{currentText.locale}',
},
{
xtype: 'checkboxfield', //all fields in this form
name: 'active', //are showing proper data,
fieldLabel: 'Actief', //except this checkbox
bind: '{currentText.active}'
},
{
xtype: 'ckeditor',
fieldLabel: 'description',
itemId: 'ckeditor-body',
name: 'text',
bind: '{currentText.text}',
msgTarget: 'under',
CKConfig: {
extraPlugins: wordcount,notification',
}
}
});
ii) 以下是主视图
Ext.define('TestCMS.view.UserMain', {
extend: 'Ext.container.Container',
alias: 'widget.user-main',
itemId: 'user-main',
layout: 'border',
defaults: {
split: true,
border: 0
},
viewModel: {
type: 'user-vm',
},
items: [
{
xtype: 'user-grid',
reference: 'user-grid',
region: 'west',
width: 350,
title: 'users',
multiSelect: false
}
});
iii) 以下是详细窗口视图
Ext.define('TestCMS.view.UserDetailWindow', {
extend: 'Ext.window.Window',
alias: 'widget.UserDetailWindow',
itemId: 'user-detail-window',
controller: 'user-detail',
requires: [
'TestCMS.controller.UserDetail',
],
layout: 'fit',
minHeight: 632,
minWidth: 1088,
closable: true,
modal: true,
closeAction: 'destroy',
maximizable: true,
bind: {
hidden: '{userDetailPanelDisabled}',
},
items: [
{
xtype: 'user-detail',
}
],
renderTo: Ext.getBody(), //This line causes the bug
});
- 我已添加此行(即 renderTo: Ext.getBody())以在整个屏幕上显示
Popup window。 没有这条线popup window只会在容器中显示。- 在上面的代码中只添加这一行后,出现与复选框功能相关的错误,否则它工作正常。
iv) 以下是用户 gridview dblClick 处理程序
onItemDblClick: function (view, record, item, index, e, eOpts) {
var userDetailWindow = Ext.widget('UserDetailWindow');
var mainView = view.up('#user-main');
viewModel = mainView.getViewModel();
mainView.add(userDetailWindow);
userDetailWindow.down('#user-detail').loadRecord(record);
contentWindow.show();
contentWindow.setTitle('user: ' + viewModel.data.userName);
},
【问题讨论】:
-
你能给一些小提琴而不是这么冗长的东西吗?
标签: extjs