2013-06-30 456 views
0

通過選擇第一個組合框,其餘值應顯示在窗體中。通過選擇第一個組合框,應顯示其餘值

我正在使用Extjs創建地址簿應用程序。

通過選擇第一個組合框,其餘值應顯示在下面的窗體中。

下面是代碼:

Ext.define('User', { 
    extend: 'Ext.data.Model', 
    fields: [{name:'id', type: 'int'}, 
      {name: 'FirstName', type: 'string'}, 
      {name: 'EmailAddress', type: 'string'}] 
}); 

user : [{"FirstName": "sssss", "EmailAddress": "[email protected]}, {"FirstName": "bbbb", "EmailAddress": "[email protected]"}] 

通過從組合框中選擇EmailAddress的姓應顯示在下面文本字段。

var cntry_panel = new Ext.Panel({ 
    header: false, 
    id: 'org-main', 
    layout: 'form', 
    labelWidth: 200, 
    border: false, 
    bodyStyle: 'padding:15px', 
    title: 'Select Country And State', 
    labelAlign: "right", 
    renderTo: Ext.getBody(), 
    items: [{ 
     xtype: 'combo', 
     fieldLabel: 'First Name', 
     id: 'Name', 
     store: user, 
     displayField: 'FirstName', 
     mode: 'remote', 
     width: 260, 
     forceSelection: true, 
     triggerAction: 'all', 
     emptyText: 'Select FirstName...', 
    }, { 
     xtype: 'combo', 
     fieldLabel: 'Email Address', 
     store: user, 
     mode: 'local', 
     width: 150, 
     forceSelection: true, 
     triggerAction: 'all', 
     selectOnFocus: true 
    }] 
}); 
+0

有幾件事:首先,你的代碼片段中既沒有數據也沒有「Homephone」的文本框(可能你在談論「EmailAddress」?)。其次,我將從ComboBox的文檔開始。 select事件傳遞選定記錄的列表。您可以輕鬆地從所選記錄中提取其他數據並使用它來填充其他字段。 – existdissolve

+0

我能夠拉數據,但我想顯示錶單。 – sreekanth

+0

是「Emailaddress」,請你提供拉數據的例子。 – sreekanth

回答

0

首先,您的電子郵件地址字段可能應該是一個textfield,除非你有你正在使用該字段爲combo值的列表。

接下來,給您的電子郵件字段itemId財產,如emailField,方便訪問。

然後,在你的配置爲名字字段,添加一個偵聽器select事件:

{ 
    xtype: 'combo', 
    fieldLabel: 'First Name', 
    //...other properties... 
    listeners: { 
     select: function(combo, records) { 
      combo.up('#org-main').down('#emailField').setValue(records[0].get('email')); 
     } 
    } 
} 

你真的應該看看事件的文檔上Ext.form.field.ComboBox,這是一個很常見的操作,將瞭解您是否會使用大量的ExtJS非常重要。 http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.form.field.ComboBox

+0

更改事件的正確參數是:{this},newValue,oldValue,eOpts – existdissolve

+0

您是對的,我打算輸入'select',我已經編輯過這篇文章。 – kevhender

相關問題