extjs组合显示值
问题描述:
在ext js中,当我有一个组合时,显示值和值(它被发送到服务器)。我不需要displayValue发送到服务器,但我需要在页面上捕获它并显示警报。 这样做的eextjs方法是什么? combo.getValue()
将返回潜在价值......我没有看到任何combo.getDisplay()
extjs组合显示值
编辑:只是为了澄清,我希望得到一个由用户选择的项目的显示值。我希望在onselect或changeevent上显示提醒。
答
如果您设置组合框您希望在该做工精细警报显示值valueField属性。
alert(combo.getValue());
如果你想要这个值是从你提交到服务器的值不同,你将获得从组合框中商店,并找到相应的记录。
var store = combo.getStore();
var index = store.find('*YourFieldName*', combo.getValue());
if(index != -1)//the record has been found
{
var record = store.getAt(index);
//you can then do what you like with the record.
}
答
我们可以检索底层商店,然后使用我们的值作为键来获得显示值。
像这样的东西(我没有测试过):
var displayValue = combo.getStore()[combo.getValue()]
答
我们可以得到组合框显示值这样的事情...
getRawValue():字符串 返回组合的原始字符串值,而没有进行任何正常化,转换或验证。获取输入元素的当前值,如果该字段已被渲染,则忽略该值(如果它是空文本)。
combo.getRawValue();
答
combo.getStore().getById(combo.getValue()).raw.displayAttribute //Ext 4.x,
//displayAttribute: displayField or displayed attrib in store data for the combo
答
让我们假设你在你的组合框有如下:
id: 'COMBOBOX_ID', displayField: 'COMBOBOX_DIS_FIELD_NAME', valueField: 'COMBOBOX_VAL_FIELD_NAME'
然后,你可以做到以下几点:
var combo = Ext.getCmp('COMBOBOX_ID');
var comboStore = combo.getStore();
var index = comboStore.find('COMBOBOX_VAL_FIELD_NAME', combo.getValue());
if(index != -1)
{
var selectedItemDisplayValue = combo.getStore().getAt(index).get('COMBOBOX_DIS_FIELD_NAME');
}
+1但你并不真正需要的 “如果”条件。 (如果你能想到一个你需要的情况,我想知道!) – 2011-02-02 17:42:27