那么我该如何更改应该显示多个启用的select标记的行数:
<select multiple="multiple">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
Run Code Online (Sandbox Code Playgroud)
这只会显示前四个选项如何显示第五个而不必滚动?
我想动态地将项目添加到组合框项目.这是它的定义:
{
xtype: 'combobox',
id: 'tierTypeCB',
fieldLabel: 'Tiers\' type',
labelWidth: 70,
editable: false,
valueField: 'type',
displayField: 'type',
store: Ext.create('Ext.data.Store',{
fields: ['type'],
data: []
})
}
Run Code Online (Sandbox Code Playgroud)
在代码的其他部分,我有这个函数应该添加项目:
onGetTiersSuccess: function(response) { // this is a 'success' function of an AJAX request
var decodedResponse = Ext.decode(response.responseText);
var tierTypeCB = Ext.getCmp('tierTypeCB');
var tierTypesStore = tierTypeCB.getStore();
for (var tierType in decodedResponse){
tierTypesStore .add({type: tierType});
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当下拉打开时它是空的.我发现的是,我的代码将数据放入组合框的商店,但是一旦组合扩展,商店就会被清空.我使用chrome的控制台做了一些测试.我评论了'onGetTiersSuccess'功能.相反,我只需键入控制台Ext.getCmp('tierTypeCB').getStore().add({type: 'abc'})
如果我打开组合框它是空的.但是,如果我首先打开组合框(在添加该项目之前),然后才添加该项目,再次打开组合框后,我可以看到我添加的项目.似乎在打开它之前将项目添加到组合框中,一旦打开它就会"重置"组合框的商店.我试图在添加项目之前通过调用Ext.getCmp('tierTypeCB').expand()然后调用来绕过它Ext.getCmp('tierTypeCB').collapse(),但这没有帮助.我也试过不设置我定义它的组合框的商店,但创建一个商店对象,然后将其绑定到组合框(使用bindStore()命令),这也没有帮助.
在这一点上,我很无能,所以如果你有任何想法可以帮助我,我会很感激.
谢谢,eRez