最近碰到一个问题,有一个combobox,下拉的选项是从服务器读取的,我想在修改操作的时候,能够根据值自动匹配
使用了setValue()方法,
现在的问题是,页面第一次进入的时候,文本框中显示的是 valueField的值,不是displayField中对应的文本.
但是以后的显示都是正常的(只要不重新刷新页面)
原因在一开头没有focus就return了
查了一下ComboBox的源码,其中onLoad事件是这样写的:
onLoad : function(){
if(!this.hasFocus){
return;
}
需要扩展下就可以解决这个问题.
代码如下:
Ext.namespace('ux');
Ext.ux.DefaultingComboBox = function(config) {
Ext.ux.DefaultingComboBox.superclass.constructor.call(this, config);
};
Ext.extend(Ext.ux.DefaultingComboBox, Ext.form.ComboBox, {
setValue : function(v) {
// 如果远程数据还没有加载,在设值之前先加载一次
if (this.mode == 'remote' && this.store.getCount() == 0) {
this.store.on("load", function() {
Ext.ux.DefaultingComboBox.superclass.setValue.call(this, v);
}, this, {
single : true
});
this.doQuery(this.allQuery, true);
} else {
Ext.ux.DefaultingComboBox.superclass.setValue.call(this, v);
}
}
});
使用方法:
将代码复制到你的js中,combo不需要修改,只需要写成如下就可以解决问题.
new Ext.ux.DefaultingComboBox({
xtype : 'combo',
fieldLabel : '车牌号码',
allowBlank : false,
triggerAction : 'all',
forceSelection : true,
store : clbmStore,
id : 'clmc',
//mode : 'local',//不能使用mode=local
lazyRender :true,
readOnly : true,
loadingText : '正在加载中...',
valueField : "dm",
hiddenName : 'pbp.clbm',
displayField : "mc",
emptyText : '请选择...',
name : 'pbp.clbm',
anchor : '95%'
}),
分享到:
相关推荐
总结起来,解决Silverlight DataGrid中ComboBox列无法在编辑模式下默认选中值的问题,关键在于监听DataGrid的编辑事件或ComboBox的加载事件,并根据当前行的数据设置ComboBox的选中项。通过这样的代码调整,我们可以...
在这个问题中,我们关注的是如何设置`TcxCheckComboBox`的初始值,即在程序运行时,控件显示的默认选中项或状态。以下是对`TcxCheckComboBox`初始值的详细解释。 首先,我们需要了解`TcxCheckComboBox`的基本结构。...
4. **事件处理**:可能需要监听`EditingControlShowing`事件,以便在用户开始编辑时设置`ComboBox`的初始值,并在`ValueChanged`事件中处理用户的选定值。 ```csharp dataGridView.EditingControlShowing += ...
1. **初始化`ComboBox`**:在`ColumnModel`的`editor`属性中,创建一个`ComboBox`实例,并正确设置`valueField`和`displayField`属性。同时,确保`ComboBox`的`store`属性绑定到适当的数据存储。 2. **配置`...
EasyUI的Combobox组件是一个具有输入框和下拉列表的控件,它允许用户从预定义的选项中选择或者手动输入值。Combobox提供了丰富的配置项和事件,使得在Web应用中创建交互式下拉列表变得简单易行。 **Combobox基本...
可以使用`ComboBox.SelectedIndex`或`ComboBox.SelectedItem`属性设置初始选中项。 综上所述,掌握这些Combobox的使用技巧,能帮助你创建更加高效、用户友好的应用程序。在实际编程中,应根据项目需求灵活运用这些...
1. **修复默认选择**:我们检查了初始化代码,确保在创建Combobox时正确设置默认选中的项。这可能涉及到了DOM元素的遍历以及与数据源的匹配。同时,我们也添加了异常处理机制,以防数据源未定义或格式不正确时,仍能...
可以通过设置`currentIndex`属性来指定初始选中的选项。例如,如果要将“Option 2”作为默认选项,可以写为: ```qml currentIndex: 1 ``` 4. **自定义样式**: QML允许通过CSS样式的QML版(Declarative Style...
- 为避免不必要的请求,可以在初始加载时就加载第一级combobox的全部数据,而第二级则在用户做出选择后动态加载。 - 在实际项目中,可能需要考虑异步加载数据和处理网络延迟问题,确保用户体验流畅。 通过以上...
#### 初始化与加载事件 在给定的代码片段中,首先定义了一个名为`Form1`的窗体类,其中包含了`comboBox1`和`button1`两个控件。在窗体的`Load`事件处理程序中,程序首先检查存储用户名称的配置文件是否存在(本例...
接下来,你可以用以下代码初始化ComboBox: ```javascript $("#myComboBox").combobox(); ``` **jQuery ComboBox 的特性** 1. **可搜索**:用户可以通过输入部分文本快速查找并选择所需选项。 2. **自定义样式**...
ComboBox控件是一种常见的用户界面元素,它结合了下拉列表和文本输入框的功能,用户既可以手动输入值,也可以从预定义的列表中选择。在ASP中,我们通常会用到VBScript或JScript来处理ComboBox的动态加载。 首先,让...
综上所述,实现Domino XPAGS中Combobox默认空值的关键在于创建包含空值的选项数组,并在页面加载时正确设置Combobox的初始值。通过理解上述知识点和代码逻辑,我们可以有效地在应用程序中实现这一功能。
ComboBox由几个关键部分组成,包括store(数据存储)、displayField(显示字段)和valueField(值字段)。Store用于存储选项数据,displayField定义了在下拉列表中显示的字段,而valueField则标识选中项的唯一标识。...
这通常会涉及事件处理,如`EditingControlShowing`事件,用于在单元格进入编辑模式时设置`ComboBox`的初始值。 此外,我们还需要考虑一些实际应用中的细节,比如数据验证(确保用户选择了有效的值)、自定义项...
ComboBox是一种下拉列表框,用户可以从中选择一个项目或输入自己的值。要实现三级级联,我们将在每个ComboBox中填充对应级别的数据,如省份、城市和县,当用户在上级ComboBox中做出选择时,下级ComboBox会自动更新其...
3. **初始化组件**:使用jQuery选择器找到`<select>`元素并调用`.combobox()`方法。 ```javascript $(function() { $("#myComboBox").combobox(); }); ``` 4. **配置与事件**:可以通过传递对象参数来配置...
- 初始化颜色列表,每个颜色项包含颜色值和显示文本。 - 创建并设置`ColorComboBox`的属性,如`DrawMode`设置为`OwnerDrawFixed`,以便我们自定义绘制。 - 重写`OnDrawItem`事件,绘制颜色矩形和文本。 - 绑定数据源...
#### 二、初始化与填充ComboBox 1. **初始化ComboBox:** 在使用 `ComboBox` 控件之前,首先需要确保其被正确地添加到窗体上,并通过资源ID与代码关联起来。可以通过在对话框编辑器中添加 `ComboBox` 控件并设置其...
1. **获取所有下拉项的最大宽度**:遍历`ComboBox`的所有项目,并计算每个项目的文本宽度,取其中的最大值作为下拉列表的最大宽度。 2. **设置`ComboBox`的`DropDownWidth`属性**:将计算得到的最大宽度赋值给`...