- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个新的 EXTJS 窗口,该窗口内有一个面板,该面板内有一个表单!
当我单击“X”或取消关闭窗口时,出现此错误:
Uncaught TypeError: Cannot read property 'className' of undefinedhasClass
@ ext-all-debug.js:2252addClass
@ ext-all-debug.js:2183Ext.Button.Ext.extend.onMouseOver
@ ext-all-debug.js:31140aK
@ miframe.js:1
我在取消按钮中使用此处理程序:
handler: function () {
this.close();
},
完整代码-
example.SurveyFieldDefaultWindow = Ext.extend(Ext.Window, {
id: 'survey-default-win',
title: 'Custom Survvey',
modal: true,
closable: true,
width: 500,
height: 600,
frame: true,
bodyStyle: 'padding: 5px',
forceFit: true,
constrainHeader: true,
layout: 'fit',
initComponent: function () {
this.canEdit = this.checkEditPermissions();
questionStore2 = questionStore;
var survey_window = Ext.getCmp('survey-win');
survey_window.afterRender(
survey_window.getFormValues()
);
formValues2 = formValuesObj;
survey_default_id = Math.floor(10000 + Math.random() * 90000);
Ext.apply(
this, {
items: [{
xtype: 'tabpanel',
id: 'survey-field-form-tabpanel',
layoutOnTabChange: true,
activeTab: 0,
items: [{
title: 'Questions',
layout: 'fit',
items: [{
xtype: 'form',
id: 'survey-field-form',
border: false,
bodyStyle: 'padding: 5px;',
frame: true,
defaultType: 'textfield',
}]
}]
}],
buttons: [{
id: 'save-button',
text: 'Default-Save',
handler: function () {
this.saveForm()
},
scope: this
}, {
text: 'Default-Cancel',
handler: function () {
this.close();
},
scope: this
}]
}
);
example.SurveyFieldDefaultWindow.superclass.initComponent.apply(this, arguments);
var data = questionStore2.data.items;
for (var i = 0; i < data.length; i++) {
if (data[i].data.fieldTypeName == "DropDownList" || data[i].data.fieldTypeName == "RadioButtonList" || data[i].data.fieldTypeName == "CheckBoxList" || data[i].data.fieldTypeName == "Rating" || data[i].data.fieldTypeName == "YesNo") {
// create a Record constructor:
var rt = Ext.data.Record.create([
{name: 'optionValue'},
{name: 'optionText'}
]);
var myStore = new Ext.data.Store({
// explicitly create reader
reader: new Ext.data.ArrayReader(
{
idIndex: 0 // id for each record will be the first element
},
rt // recordType
)
});
var myData = [];
for (var j = 0; j < data[i].data.selectOptions.list.length; j++) {
var optionText = data[i].data.selectOptions.list[j].optionText.toString();
var optionValue = data[i].data.selectOptions.list[j].optionValue.toString();
myData.push([optionValue, optionText]);
}
myStore.loadData(myData);
var id = data[i].data.name.toString();
var cb = new Ext.form.ComboBox({
fieldLabel: data[i].data.name,
id: id,
typeAhead: true,
allowBlank: true,
mode: 'local',
emptyText: 'Select Default value',
width: 190,
margin: '40 30 20 10',
store: myStore,
valueField: 'optionValue',
displayField: 'optionText',
selectOnFocus: true,
triggerAction: 'all',
listeners: {
'select': function (cb, newValue, oldValue) {
for (var i = 0; i < formValues2.fields.list.length; i++)
{
for (var j = 0; j < formValues2.fields.list[i].selectOptions.list.length; j++)
{
if(formValues2.fields.list[i].name == cb.fieldLabel ){
if( formValues2.fields.list[i].selectOptions.list[j].optionText == cb.lastSelectionText) {
formValues2.fields.list[i].selectOptions.list[j].preselect = true;
}
}
}
}
}
}
});
Ext.getCmp('survey-field-form').add(cb);
Ext.getCmp('survey-field-form').doLayout();
}
}
getDefaultSurveyFormValues = Ext.getCmp('survey-field-form');
getDefaultSurveyFormValues.on("afterrender", function () {
//this code will run after the panel renders.
if (getDefaultSurveyFormValues != undefined) {
getDefaultSurveyFormValues.getForm().getValues();
}
else {
console.log('undefined getDefaultSurveyFormValues');
}
});
},
checkEditPermissions: function () {
return Security.hasAccess("Surveys", Security.UPDATE_ACCESS);
},
saveForm: function () {
// disable save button while saving form
// Ext.getCmp('save-button').disable(); ----------------------------------- undo comment later
// submit the form using a jabsorb call
Ext.getCmp('survey-field-form').getForm().doAction("JabsorbSubmit", {
formValues: formValues2,
jabsorbMethod: Jabsorb.getInstance().surveyTemplateService.saveSurveyTemplate,
// timeout:300000,
failure: function (form, action) {
Ext.Msg.alert('Request Failed', 'Could not save survey template information to generate Survey View: ' + action.result.msg);
},
success: function (form, action) {
Ext.Msg.alert('magic' , 'magic');
}
});
}
});
Ext.reg('example.SurveyFieldDefaultWindow', example.SurveyFieldDefaultWindow);
最佳答案
我根据您的代码创建了一个 fiddle 来创建窗口并使用关闭按钮。在这里查看:https://fiddle.sencha.com/#fiddle/16lu
据我所知,在您的 initComponent: function() {
中,您从未调用 this.callParent()
方法。如果使用 initComponent
配置,这对于类继承非常重要。
来自文档:
Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).
关于javascript - EXTJS 窗口/面板关闭错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35779174/
我带着这么简单的问题来到这里,但找不到它......无论如何,你可以在下面看到代码。这是里面有项目的面板。我想要的是更改名称为“intIP”的文本字段的值,它位于面板内部,位于面板内部。我怎样才能做到
如何在 ExtJS 设计中显示面包屑功能。 我正在使用带边框布局的面板,我想在面板顶部设计面包屑功能 请寄给我一些 sample ..... 提前致谢 最佳答案 我想到了两个解决方案。 使用面板标题
你好 如何在 ExtJS 中设计嵌套网格 请提供一些示例(如何在 ExtJS GridPanel 中使用 RowExpander) 最佳答案 尝试这样的事情: //Create the Row Ex
我有类似的东西 Ext.define('HS.controller.Utility', { statics : { state : 'Oklahoma' } }); 现在我想
我有一列checkcolumn类型来启用切换 bool 值。我希望能够一次为该值切换所有行。理想情况下,我可以在checkcolumn header 中添加一个复选框,并监听更改。那可能吗? 我想指出
在我的 extjs 项目中,我有一些 panel我要展示的toolbar在 mouseEnter事件。这工作正常。但是当我用新的 html 更新面板时,mouseenter事件不起作用。 panel.
如何在 ExtJs Combo 中显示图标和显示字段。extjs 组合是否有任何扩展。请提供一些 sample 。 最佳答案 对于 ExtJS4,将带有 getInnerTpl 方法的 listCon
我有用于网格和柱状图的存储,但值是字符串形式的(服务器端格式化的数量,不能在客户端完成)。由于字符串格式的数量,网格没有被呈现。解决方案可能会使用网格和图表所需的数据类型制作单独的存储。但这是低效的方
我正在一个页面上有一个GridPanel的项目中工作。该面板可以显示任意数量的行,并且我设置了autoHeight属性,这将导致GridPanel扩展以适合行数。我现在想要一个水平滚动条,因为在某些分
我有一个网格,它允许用户通过编辑行来输入数字。我希望数字支持 4 位小数,但它只支持 2 位。我想出了如何显示 4 位小数,但它没有注册超过 2 位小数。 因此,如果用户输入 1000.1111,结果
我这里有以下网格: Ext.define('AM.view.user.List', { extend: 'Ext.grid.Panel', alias: 'widget.userlis
我正在将我的应用程序从ExtJs 3迁移到4版本。 我的formPanel上有几个组合框,以前我用过hiddenName 以及所有的stuff提交valueField而不是displayField。
我在一个面板中创建了多个项目。现在我想以“适合”布局显示此面板。我不想修复该面板的高度和宽度。我知道“适合”布局只允许显示一项。 这里可以使用“适合”布局吗?或者有什么替代方案可以实现这一目标吗? 谢
我需要将数据库值加载到组合框中。我不明白,为什么值没有加载到组合框中。通过 firebug,打印出 console.log 值。这是我的组合框代码, var groups = new Ext.data
这是将筛选器动态添加到gridpanel底部工具栏的正确语法吗? this.Grid.getBottomToolbar().plugins=[filters]; 当我这样做时没有错误。但是,它的行为并
我正在使用ExtJS v4.0。 在客户端和服务器端之间维护日期格式确实令人困惑。 用户需要自己的输入格式,但是服务器通常要求提交为一种标准格式。 它应该是ExtJS中的内置实现,但不是。 我已经阅读
我的问题对你来说很容易,但我负担不起..我从行中获取数据并显示在其他面板的字段中我的目标是编辑这些数据并在网格中显示编辑后的数据,请给我一些建议,我知道它需要 commit() 函数但是.. 我的代码
我是 ExtJS 的新手。我遵循了一个教程,目的是在网格上创建分页。代码很简单,我发现它很可疑......结果,分页工具栏在那里,但在第一次加载时仍然显示所有数据。这是我在 View 文件中的代码:
听说EXTJS是一个独立于浏览器的javascript库。 extjs 如何使自己独立于浏览器?当我打开库类时,我没有看到任何代码: 如果(IE)//这样做;else if (FF)//做其他事情;
我有一个类的实例(例如 Ext.data.Model)myRecord 并且需要调用它的静态方法之一(例如 getFields())。我该怎么做? 最佳答案 您还可以使用 self获取类的属性: my
我是一名优秀的程序员,十分优秀!