ExtJS 6:使用 Ext.data.Model 和 loadRecord 方法用复选框填充表单
ExtJS 6: Populate a form with checkboxes using Ext.data.Model and loadRecord method
我正在尝试使用 JavaScript 对象和 Ext.data.Model 来填充带有复选框的表单。使用 textField 表单,以下代码可以正常工作:
// text is an array with text values
var currentForm = {
"name_value1": text[0],
"name_value2": text[1],
};
Ext.define('CurrentFormModel', {
extend: 'Ext.data.Model',
fields: ['name_value1',
'name_value2',
]
});
var Get_textFieldForm = textFieldForm.getForm();
Get_textFieldForm.loadRecord(new CurrentFormModel(currentForm));
如何使用复选框表单成功完成此操作?我尝试了以下方法:
// text[2][i] is an array with the checked values
var checkFormObj = {
"checkboxGroupName": [text[2][0], text[2][1]]
}
Ext.define('CheckboxModel', {
extend: 'Ext.data.Model',
fields: [{name: 'checkboxGroupName', type: 'boolean'}]
});
var Get_CheckboxForm = CheckboxForm_name.getForm();
Get_CheckboxForm.loadRecord(new CheckboxModel(checkFormObj));
我的复选框表单:
CheckboxForm_name = Ext.create('Ext.form.Panel', {
title: 'Checkbox form',
collapsible: true,
collapsed: true,
items: [{
xtype: 'checkboxfield',
name: 'checkboxGroupName',
boxLabel: 'Checkbox1',
inputValue: 'checkbox_1'
}, {
xtype: 'checkboxfield',
name: 'checkboxGroupName',
boxLabel: 'Checkbox2',
inputValue: 'checkbox_2'
}]
});
但是没有任何反应。有什么想法吗?
我设法解决了这个问题。无需定义带有字段的对象,也无需扩展 Ext.data.Model class 以包含这些字段。
以下代码填充复选框表单。
var CheckboxModel = new Ext.data.Model({
<name>: [<inputValue>, // the input values of checkboxes
<inputValue>
]
});
var Get_CheckboxForm = CheckboxForm_name.getForm();
Get_CheckboxForm.loadRecord(CheckboxModel);
我正在尝试使用 JavaScript 对象和 Ext.data.Model 来填充带有复选框的表单。使用 textField 表单,以下代码可以正常工作:
// text is an array with text values
var currentForm = {
"name_value1": text[0],
"name_value2": text[1],
};
Ext.define('CurrentFormModel', {
extend: 'Ext.data.Model',
fields: ['name_value1',
'name_value2',
]
});
var Get_textFieldForm = textFieldForm.getForm();
Get_textFieldForm.loadRecord(new CurrentFormModel(currentForm));
如何使用复选框表单成功完成此操作?我尝试了以下方法:
// text[2][i] is an array with the checked values
var checkFormObj = {
"checkboxGroupName": [text[2][0], text[2][1]]
}
Ext.define('CheckboxModel', {
extend: 'Ext.data.Model',
fields: [{name: 'checkboxGroupName', type: 'boolean'}]
});
var Get_CheckboxForm = CheckboxForm_name.getForm();
Get_CheckboxForm.loadRecord(new CheckboxModel(checkFormObj));
我的复选框表单:
CheckboxForm_name = Ext.create('Ext.form.Panel', {
title: 'Checkbox form',
collapsible: true,
collapsed: true,
items: [{
xtype: 'checkboxfield',
name: 'checkboxGroupName',
boxLabel: 'Checkbox1',
inputValue: 'checkbox_1'
}, {
xtype: 'checkboxfield',
name: 'checkboxGroupName',
boxLabel: 'Checkbox2',
inputValue: 'checkbox_2'
}]
});
但是没有任何反应。有什么想法吗?
我设法解决了这个问题。无需定义带有字段的对象,也无需扩展 Ext.data.Model class 以包含这些字段。 以下代码填充复选框表单。
var CheckboxModel = new Ext.data.Model({
<name>: [<inputValue>, // the input values of checkboxes
<inputValue>
]
});
var Get_CheckboxForm = CheckboxForm_name.getForm();
Get_CheckboxForm.loadRecord(CheckboxModel);