【问题标题】:EXT: Cannot read property 'reload' of undefinedEXT:无法读取未定义的属性“重新加载”
【发布时间】:2017-09-12 10:16:31
【问题描述】:

我有一个下拉字段,我试图在 AfterRender 上重新加载它的存储,但我收到此错误:

无法读取未定义的属性“重新加载”

代码如下:

Javascript 重新加载:

function LoadAll(){
    #{StoreFieldNames}.reload();
}

分机代码:

渲染后的窗口:

<AfterRender Handler="LoadAll();" />

Gridpanel 中的DropDownField 编辑器

<ext:DropDownField
     ID="DropDownField2"
     runat="server"
     FieldLabel="Field Name">
          <Component>
               <ext:GridPanel ID="FieldNameGridPanel"
                   runat="server"
                   Frame="true">
                       <Store>
                          <ext:Store ID="StoreFieldNames" runat="server" GroupField="Form" OnReadData="StoreFieldNames_ReadData">
                              <Model>
                                  <ext:Model ID="ModelFieldNames" runat="server">
                                      <Fields>
                                          <ext:ModelField Name="Form" />
                                          <ext:ModelField Name="FieldName" />
                                      </Fields>
                                  </ext:Model>
                              </Model>
                          </ext:Store>
                      </Store>
                      <ColumnModel runat="server">
                          <Columns>
                          <ext:Column runat="server" Text="Form" DataIndex="Form" Flex="6" />
                          <ext:Column runat="server" DataIndex="FieldName" Flex="6" />                                                               
                          <ext:ImageCommandColumn runat="server" Align="Center" Flex="1">
                               <Commands>
                                     <ext:ImageCommand Icon="Accept" CommandName="Pick">
                                            <ToolTip Text="Click to choose this fieldname" />
                                     </ext:ImageCommand>
                               </Commands>
                               <Listeners>
                                  <Command Handler="this.gridRef.dropDownField.setValue(record.data.FieldName);" />
                               </Listeners>

                           </ext:ImageCommandColumn>
                       </Columns>
                  </ColumnModel>
                  <View>
                      <ext:GridView ID="GridView3" runat="server" LoadMask="true" />
                  </View>

                  <SelectionModel>
                       <ext:RowSelectionModel ID="RowSelectionModel3" runat="server" Mode="Multi" />
                  </SelectionModel>

                  <Features>
                       <ext:Grouping ID="Grouping3 runat="server" HideGroupedHeader="true" StartCollapsed="true" />
                  </Features>
               </ext:GridPanel>
            </Component>
      </ext:DropDownField>

【问题讨论】:

    标签: javascript asp.net .net extjs ext.net


    【解决方案1】:

    无法读取未定义的属性“重新加载”

    在 ExtJs 文档中提供了获取组合存储的方法,并存储了加载数据的方法。可以参考ExtJs docs

    我创建了一个小演示来向您展示它是如何工作的。 Sencha fiddle example

    var store = Ext.create('Ext.data.Store', {
        fields: [
            'id','email', 'first', 'last'
        ],
        proxy: {
            type: 'ajax',
            url: 'person.json',
            reader: {
                type: 'json',
                rootProperty: 'data'
            }
        }
    });
    
    Ext.create('Ext.form.ComboBox', {
        store: store,
        queryMode: 'local',
        margin:20,
        displayField: 'first',
        valueField: 'id',
        renderTo: Ext.getBody(),
        emptyText:'Select',
        listeners: {
            afterrender: function () {
               this.getStore().load();
            }
    
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2018-12-20
      • 2018-04-28
      • 2019-09-07
      • 2021-10-12
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 2017-10-28
      • 2019-02-19
      相关资源
      最近更新 更多