У меня есть раскрывающееся поле, и я пытаюсь перезагрузить его хранилище на AfterRender, но я получаю эту ошибку:
Невозможно прочитать свойство "перезагрузить" неопределенного
Вот код:
Перезагрузка Javascript:
function LoadAll(){
#{StoreFieldNames}.reload();
}
Ext Код:
Окно afterRender:
<AfterRender Handler="LoadAll();" />
Редактор DropDownField в Gridpanel
<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>
Невозможно прочитать свойство "перезагрузить" неопределенного
В ExtJs docs предоставляют метод для получения хранилища для комбо и хранения имеют метод для загрузки данных. Вы можете обратиться к документам ExtJs
Я создал небольшую демонстрацию, чтобы показать вам, как она работает. Пример скрипки Sencha
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();
}
}
});