Javascript 为什么Ext JS 3.3下载中不包含Ext JS multiselect项目选择器文件?它们在哪里?
我正在尝试基于设置一个多选项选择器 但是,在将其构建到我的环境中后,我遇到以下错误: 是什么原因导致此错误?我如何修复它? 补遗 我发现,当我注释掉这一行时:Javascript 为什么Ext JS 3.3下载中不包含Ext JS multiselect项目选择器文件?它们在哪里?,javascript,extjs,multi-select,Javascript,Extjs,Multi Select,我正在尝试基于设置一个多选项选择器 但是,在将其构建到我的环境中后,我遇到以下错误: 是什么原因导致此错误?我如何修复它? 补遗 我发现,当我注释掉这一行时: //xtype: 'itemselector', 然后它就起作用了为什么xtype“itemselector”无法工作? 奇怪的是,我发现了itemselector如果“itemselector”不是有效的xtype,Sencha示例如何工作? 增编2 因此,我发现演示可以访问这两个文件: <script type="text/
//xtype: 'itemselector',
然后它就起作用了为什么xtype“itemselector”无法工作?
奇怪的是,我发现了itemselector如果“itemselector”不是有效的xtype,Sencha示例如何工作?
增编2
因此,我发现演示可以访问这两个文件:
<script type="text/javascript" src="../ux/MultiSelect.js"></script>
<script type="text/javascript" src="../ux/ItemSelector.js"></script>
multiselect是一个用户扩展(因此在UX包中),因此您必须单独下载源代码,因为它不是核心的一部分 他们也对其他插件(例如checkcolumn)这样做,因为它们不是由ExtJS团队编写的,因此没有完全测试/认可 您可以在此处获得multi-select的CSS: 以及itemselector和multiselect的JS:
编辑:对不起,我没有看完你的全部问题。我建议按照您的建议将您的ExtJS更新到3.3.1版,这可能是最好的开始。谢谢,我越来越接近了,但由于某些原因,它仍然找不到xtype“itemselector”,我发布了我上面采取的步骤。也许这是一个路径问题,但我现在引用这两个.js文件,所以我的代码应该能够访问这个xtype。或者我的代码需要其他一些基本代码来访问自定义xtypes吗?确保JS文件加载正常(通过firebug Net选项卡),并确保
Ext.reg('itemselector',Ext.ux.form.itemselector')代码>调用正在进行,您不需要任何额外的代码来访问这些X类型。。只需调用Ext.reg
就可以在Ext中注册xtypes,确保在ItemSelector.js之前包含MultiSelect.js文件。很好,这两个技巧解决了最后一个问题:路径设置不正确,Ext-all-debug.js必须在ItemSelector.js前面的MultiSelect.js前面,谢谢!
<script type="text/javascript">
clearExtjsComponent(targetRegion);
var multiselectDataStore = new Ext.data.ArrayStore({
data: [[123,'One Hundred Twenty Three'],
['1', 'One'], ['2', 'Two'], ['3', 'Three'], ['4', 'Four'], ['5', 'Five'],
['6', 'Six'], ['7', 'Seven'], ['8', 'Eight'], ['9', 'Nine']],
fields: ['value','text'],
sortInfo: {
field: 'value',
direction: 'ASC'
}
});
var simple_form = new Ext.FormPanel({
labelWidth: 75,
frame:true,
style: 'margin: 10px',
title: 'Simple Form',
bodyStyle:'padding:5px 5px 0',
width: 700,
defaults: {width: 230},
defaultType: 'textfield',
items: [{
fieldLabel: 'Item 1',
name: 'item1',
allowBlank:false,
value: 'sfsfdsf'
},{
fieldLabel: 'Item 2',
labelStyle: 'color:red',
style: 'color:red',
name: 'item2'
},{
fieldLabel: 'Item 3',
name: 'item3',
value: 'nnnnn',
xtype: 'displayfield'
}, {
fieldLabel: 'Email',
name: 'email',
vtype:'email'
}, {
xtype: 'itemselector',
name: 'itemselector',
fieldLabel: 'ItemSelector',
imagePath: '../ux/images/',
multiselects: [{
width: 250,
height: 200,
store: multiselectDataStore,
displayField: 'text',
valueField: 'value'
},{
width: 250,
height: 200,
store: [['10','Ten']],
tbar:[{
text: 'clear',
handler:function(){
simple_form.getForm().findField('itemselector').reset();
}
}]
}]
},
new Ext.form.TimeField({
fieldLabel: 'Time',
name: 'time',
minValue: '8:00am',
maxValue: '6:00pm'
}), {
width: 100,
xtype: 'combo',
mode: 'local',
value: 'en',
triggerAction: 'all',
forceSelection: true,
editable: false,
fieldLabel: 'Produkt',
name: 'language',
hiddenName: 'language',
displayField: 'name',
valueField: 'value',
store: new Ext.data.JsonStore({
fields : ['name', 'value'],
data : [
{name : 'German', value: 'de'},
{name : 'Broschüre', value: 'en'},
{name : 'French', value: 'fr'}
]
})
},{
xtype: 'radiogroup',
fieldLabel: 'Status',
columns: 1,
vertical: true,
items: [
{boxLabel: 'Low', name: 'rb-vert', inputValue: 1},
{boxLabel: 'Medium', name: 'rb-vert', inputValue: 2},
{boxLabel: 'High', name: 'rb-vert', inputValue: 3, checked: true},
{boxLabel: 'Item 4', name: 'rb-vert', inputValue: 4},
{boxLabel: 'Item 5', name: 'rb-vert', inputValue: 5}
]
}
],
buttons: [{
text: 'Save',
handler: function() {
if(simple_form.getForm().isValid()){
simple_form.getForm().getEl().dom.action = 'save_form.php';
simple_form.getForm().getEl().dom.method = 'POST';
simple_form.getForm().submit({
success : function(form, action) {
changeMenuItemInfoArea(start_info_panel2, 'Data was saved2, check file: output.txt (this is a new component)');
simple_form.hide();
}
})
} else {
Ext.Msg.minWidth = 360;
Ext.Msg.alert('Invlaid Form', 'Some fields are invalid, please correct.');
}
}
},{
text: 'Cancel',
handler: function(){
Ext.Msg.alert('Notice', 'Cancel was pressed.');
}
}]
});
replaceComponentContent(targetRegion, simple_form);
var start_info_panel2 = new Ext.Panel({
id: 'info_panel',
padding: 10,
margins: 10,
style: "margin: 10px",
width: 300,
html: '<p id="test">This is some information about the form.<p>',
border: false
});
replaceComponentContent(targetRegion, start_info_panel2);
hideComponent(regionHelp);
</script>