如何向Label和Textfields添加值

时间:2012-07-06 10:51:13

标签: extjs4 extjs4.1

我需要知道如何使用Label中的值填充Store。在我的Model中,我定义了一个名为bookname的字段。我需要用书名填充这个标签。

我知道如何为网格执行此操作,但不知道如何为LabelTextfield执行此操作。

在网格中;

{ text: "Book Name", dataIndex: 'bookname'},

但是,我们如何为Label和textfields添加值。

更新

我仍然有问题。我无法将值设置为Label。 (从STORE加载后)。标签显示但不会填充从STORE获得的值。这样没有错误。

Ext.define('Ex.view.info', {
    extend: 'Ext.window.Window',
    alias: 'widget.info',
    initComponent: function() {
        var st = Ext.getStore('peopleinformation');
        st.load();
        this.items = [
            {

                xtype: 'label',
                forId: 'myFieldId',
                text: 'My Awesome Field',
                name: 'personfirstname',
                margins: '0 0 0 10'

            }
        ];
        this.callParent(arguments);
    }
});

3 个答案:

答案 0 :(得分:2)

只需为label设置一个值,就可以使用label中描述的setText方法 http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Label-method-setText

yourLabel.setText('value');

对于textField - http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.field.Text-method-setValue

更新:

// in your store
 proxy: {
    type: 'ajax',
    url: 'you url',
    method: 'GET',
    headers: { 'Content-Type': 'application/json' },  //your response type like xml, json        
    reader: { type: 'json',            
        getResponseData: function (response) {
            var data = Ext.decode(response.responseText);
            //loop here , if more labels are there
            // get the object referance of label and update that
        }
    }

更新: 你试过了吗?

 text: st.yourFieldName,

答案 1 :(得分:0)

各种fields通常合并为form中的项目 - (请参阅http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Panel)。 Form有一个方法getForm().loadRecord(model),用于将模型中的数据(商店中的记录)加载到表单中的所有字段。

PS:看起来你还没有通过Sencha指南(http://docs.sencha.com/ext-js/4-0/#!/guide),因为我建议你解决其他问题。你仍然不知道事情是如何运作的。

答案 2 :(得分:0)

Ext 4.1在setFieldLabel()上引入了Ext.form.Labelable,其混合到Ext.form.field.Base中,并在Ext.form.field.Text中提供。

因此,您可以致电myTextField.setFieldLabel("My Label Text")