ComboBox的提交值有关问题

来源:互联网 发布:中山大学网络缴费平台 编辑:程序博客网 时间:2024/05/16 17:32
问题描述:
    我的ComboBox的显示值和提交值分别对应着两个字段,在编辑时,如果点击右边的下拉箭头,则提交值正确,但是如果不选择,直接提价的话,提交值仍然是显示的值,搜了很久,都没有找到比较理想的解决方案,请大侠参谋参谋,看看有什么更好的解决方法?
    我的代码如下,我觉着代码不会有什么问题,只是数据是否加载的问题,如果点击右侧的下拉箭头,则数据加载,如果没有点击,则不加载。这样,我理想的解决方法是,在FormPanel的数据加载完之后,能够设置combobox对应的实际值,oracle存储过程,但是,试了很久,也没有找到对应的事件。
   /** * 商户下拉框 *  * @class ServicePointCombo * @extends Ext.form.ComboBox */ServicePointCombo = Ext.extend(Ext.form.ComboBox, {name : 'servicePoint',hiddenName : 'ServicePointID',readOnly : false,error C2065,valueField : 'ServicePointID',displayField : 'Number',typeAhead : true,mode : 'remote',triggerAction : 'query',lazyInit : false,emptyText : '请选择',selectOnFocus : true,allowBlank : false,typeAheadDelay : 10000,isLoaded : false,store : new Ext.data.JsonStore({url : '/Terminal/ServicePointList',root : 'result',totalProperty : 'total',forceSelection : true,fields : [{name : 'ServicePointID',type : 'string'}, {name : 'Name',type : 'string'}, {name : 'Number',type : 'string'}],listeners : {load : function() {isLoaded = true;}}}),minListWidth : 260,pageSize : 10,tpl : new Ext.XTemplate('<div class="x-grid3"><div><table>','<thead class="x-grid3-header"><tr class="x-grid3-hd-row">','<td class="x-grid3-hd x-grid3-cell x-grid3-hd-inner" style="width: 80px;">商户号</td>','<td class="x-grid3-hd x-grid3-cell" style="width: 200px;">名称</td>','</tr></thead><tbody>','<tpl for=".">','<tr class="x-combo-list-item">','<td class="x-grid3-col x-grid3-cell"><div class="x-grid3-cell-inner"  style="font-size:12px;">{Number}</div></td>','<td class="x-grid3-col x-grid3-cell"><div class="x-grid3-cell-inner"  style="font-size:12px;">{Name}</div></td>','</tr>', '</tpl>', '</tbody></table></div></div>')});// 注册Ext.reg('servicepointcombo', ServicePointCombo);


------------------------------------------------------------------------------------------------------------------
问题补充:
是这样的,在点击“编辑”按钮,进入编辑状态,我通过一个请求,给FormPanel加载了数据,加载的数据为ServicePoint.Name,也就是说显示值。而你提供的render事件是在combobox显示时触发的,解决不了问题。如果formpanel在数据加载完后会出发某个事件应当也可以解决问题,但是一直没有找到这个事件。

------------------------------------------------------------------------------------------------------------------
问题补充:
xxq 写道
如果没选中,应该显示的是'请选择',这会提交过去吗?最好是加上默认值,在加载事件加上值,这样总会有值了
listeners : {'beforerender' : function(t) {this.value = 1;}}

问题补充:
是这样的,在点击“编辑”按钮,进入编辑状态,我通过一个请求,给FormPanel加载了数据,加载的数据为ServicePoint.Name,也就是说显示值。而你提供的render事件是在combobox显示时触发的,解决不了问题。如果formpanel在数据加载完后会出发某个事件应当也可以解决问题,但是一直没有找到这个事件。


------------------------------------------------------------------------------------------------------------------
问题补充:
xxq 写道
这属于你自己没把加载值name : 'servicePoint',  
    valueField : 'ServicePointID',  
    displayField : 'Number', 没对应起来,要么编辑load后设置值


没明白你啥意思?

------------------------------------------------------------------------------------------------------------------
问题补充:
whacker 写道
直接在里面加个属性:value: ''

这个value值可以动态绑定吗?

------------------------------------------------------------------------------------------------------------------
问题补充:
whacker 写道
setValue()

在什么时候setValue,我需要的结果是在数据加载完后setValue,可以我没找到类似的事件;我现在想到的方法是覆盖setValue方法,这样可能解决。但是也还有时间去试一试。我现在用的方法是比较老土的方法,在提交之前判断,然后setValue。不知有无更好的建议?


------解决方案--------------------------------------------------------
如果没选中,应该显示的是'请选择',这会提交过去吗?最好是加上默认值,在加载事件加上值,这样总会有值了
listeners : {'beforerender' : function(t) {this.value = 1;}}


------解决方案--------------------------------------------------------
这属于你自己没把加载值name : 'servicePoint',  
    valueField : 'ServicePointID',  
    displayField : 'Number', 没对应起来,要么编辑load后设置值

------解决方案--------------------------------------------------------
forceSelection : true,  
放到Combobox的属性里,不要放到store的属性里, Store是没有这个属性的
------解决方案--------------------------------------------------------
直接在里面加个属性:value: ''
------解决方案--------------------------------------------------------
setValue()
------解决方案--------------------------------------------------------
可参考:
ComboBox有关问题,   http://www.myexception.cn/vb-dotnet/54372.html


相关的主题文章:
  • Java Spring 线程配置,该如何处理
  • 一个单例在集群下会是什么样子解决方法
  • 请教一下 不是局域网能不能共享打印机
原创粉丝点击