0
我想在表單面板上更新少數組合(使用遠程json存儲)。 當我簡單地點擊組合(加載表單數據之前),它運行良好,加載和顯示有效的項目。 但是,當我做MyForm.getForm()。加載(...)組合項目更改爲「2」。這是ID,但不是價值。Extjs 4.2.1:如何更改表單加載的遠程組合
請幫助我,如何正確地更新此類組合並顯示帶有特定ID的值,該值來自json?
型號:
Ext.define('OwnerUserModel', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'int' },
{ name: 'VarName', type: 'string' }
]
});
商店:
var OwnerUserStore = Ext.create('Ext.data.Store', {
model : 'OwnerUserModel',
autoSync: true,
proxy: {
type: 'ajax',
url : 'http://localhost/1/Super.php?Action=GetObjectFormParams&GetAgents=1',
reader: 'json'
},
autoLoad: true
});
形成鑲板與組合項目:
var MyForm = Ext.create('Ext.form.Panel', {
header: false,
title: 'My super Form',
//height: 300,
url: 'Super.php',
//width: 1100,
bodyPadding: 10,
defaultType: 'textfield',
items: [
...
{
fieldLabel : 'Agent',
allowBlank : false,
name : 'OwnerUserId',
id : 'OwnerUserId',
queryParam : 'GetAgents',
displayField: 'VarName',
valueField : 'id',
xtype : 'combo',
store : OwnerUserStore,
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="x-boundlist-item">{VarName}</div>',
'</tpl>'
),
width: 353,
padding: '0 0 0 30',
editable: false
}
上存儲加載
的Json回覆:
[{"id":"1","VarName":"89031230000 user1 phone"},{"id":"2","VarName":"89161200000 user2 phone"
}]
的Json回覆是:{ 「成功」:真, 「數據」:{ 「LoadedObjectId」: 「10」, 「OwnerUserId」: 「2」,......}} –
我認爲,在你的'form.load'響應中是錯誤的。 'OwnerUserId'應該是一個像你的'store.load'請求中的結構對象 –
我認爲[setValue](http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form .field.ComboBox-method-setValue)函數組合框可能是你在之後。 _將指定的值存儲到字段中。對於每個值,如果在基於valueField匹配的商店中找到記錄,則該記錄的displayField將顯示在該字段中。如果未找到匹配項,並且已定義valueNotFoundText配置選項,則將顯示該項作爲默認字段文本。否則,會顯示一個空白值,但該值仍將被設置._ –