Jul 07, 2011, 9:45 AM
[CLOSED] [1.0] User Control loaded several times
Good morning, I have the following problem:
I have a list that is loaded from a store. The store has an event "OnRefreshData" where it is loaded. At "Init" of this list I do a "load control" of another form.
Take a look at this code (feel free to load the store as you want)
LIST Design
------------------------------------------------------------------
------------------------------
------------------------------
1 First load the ?init? event of the list
2 Load ?init? event of the form
3 Load again ?init? event of the list
4 Load again ?init? event of the form
5 Run event "OnRefreshData" and load data.
How I can do to load "init" event (list & form) once time? (We think the problem is coming from AutoLoad at store)
Thanks in advice
I have a list that is loaded from a store. The store has an event "OnRefreshData" where it is loaded. At "Init" of this list I do a "load control" of another form.
Take a look at this code (feel free to load the store as you want)
LIST Design
------------------------------------------------------------------
<!-- Grid -->
<ext:GridPanel Title="Convocatorias de Ayudas" EnableColumnHide="false" AutoExpandColumn="Descripcion" ID="Objeto_GridPanel" AutoHeight="true" runat="server" Frame="False" TrackMouseOver="true" >
<Store>
<%--Store--%>
<ext:Store ID="Objeto_Store" runat="server" SerializationMode="Simple" IgnoreExtraFields="true" OnRefreshData="Store_RefreshData" RemoteSort="true" RemoteGroup="true" >
<DirectEventConfig IsUpload="true" />
<Proxy>
<ext:PageProxy />
</Proxy>
<AutoLoadParams>
<ext:Parameter Name="start" Value="0" Mode="Raw" />
</AutoLoadParams>
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="Id"> </ext:RecordField>
<ext:RecordField Name="Codigo"> </ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
<SortInfo Field="Id" Direction="DESC" />
<Listeners>
<LoadException Handler="Ext.MessageBox.alert('Error al cargar los datos', response.statusText);" />
</Listeners>
</ext:Store>
</Store>
<%--Topbar--%>
<TopBar>
<ext:Toolbar ID="Objeto_GridToolbar" runat="server">
<Items>
<%--NUEVO--%>
<ext:Button ID="Button_Nuevo" Text="Nuevo" Icon="Add" runat="server" StandOut="true">
<DirectEvents>
<Click OnEvent="Objeto_Nuevo">
</Click>
</DirectEvents>
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator1">
</ext:ToolbarSeparator>
</Items>
</ext:Toolbar>
</TopBar>
<%--Columnas--%>
<ColumnModel ID="ObjetoGrid_ColumnModel" runat="server" >
<Columns>
<%--Codigo--%>
<ext:Column ColumnID="Codigo" Header="Cod." Sortable="true" DataIndex="Codigo" Align="Center" Width="60" Groupable="true"/>
<%--Id--%>
<ext:Column ColumnID="Id" Header="Id" Sortable="true" DataIndex="Id" Hidden="true" Align="Center"/>
<%--Botones--%>
<ext:CommandColumn Width="85" ColumnID="ColumnaAccciones" Header="Acciones">
<Commands>
<ext:GridCommand Icon="ApplicationViewDetail" CommandName="Detalles">
<ToolTip Text="Detalles" />
</ext:GridCommand>
<ext:CommandSeparator />
<ext:GridCommand Icon="NoteEdit" CommandName="Editar">
<ToolTip Text="Editar" />
</ext:GridCommand>
<ext:CommandSeparator />
<ext:GridCommand Icon="Delete" CommandName="Borrar">
<ToolTip Text="Borrar" />
</ext:GridCommand>
</Commands>
</ext:CommandColumn>
</Columns>
</ColumnModel>
<%--DirectEvents--%>
<DirectEvents>
<Command OnEvent="Grid_Command">
<ExtraParams>
<ext:Parameter Name="Id" Value="record.data.Id" Mode="Raw" />
<ext:Parameter Name="CommandName" Value="command" Mode="Raw" />
</ExtraParams>
<EventMask ShowMask="true" Msg="Obteniendo datos..." />
<Confirmation BeforeConfirm="if(!(command == 'Borrar')) return false;" ConfirmRequest="true"
Message="¿Está seguro de quere eliminar el elemento?" Title="Eliminar" />
</Command>
</DirectEvents>
<%--SelectionModel--%>
<SelectionModel>
<ext:RowSelectionModel ID="ObjetoGrid_RowSelectionModel" runat="server" />
</SelectionModel>
<%--Barra estado--%>
<BottomBar>
<ext:PagingToolbar ID="ObjetoGrid_PagingToolBar" runat="server" StoreID="Objeto_Store" EmptyMsg="No se encontraron registros" DisplayInfo="true" PageSize="20" StyleSpec="padding-right:35px;" />
</BottomBar>
</ext:GridPanel>
<!-- Fin Grid -->
LIST Code------------------------------
#Region "Init"
'Init
Private Sub Page_Init(ByVal sender As Object, ByVal e As Global.System.EventArgs) Handles Me.Init
'Cargamos las ventanas modal
loadWindowControls()
'Grid Paginado
Dim paginado As Integer = 20
If Not IsPostBack Then
Objeto_Store.AutoLoadParams.Add(New Ext.Net.Parameter("limit", 20))
ObjetoGrid_PagingToolBar.PageSize = paginado
End If
End Sub
'Carga el control de FORM
Private Sub loadWindowControls()
'Añadimos el control del FORM
Dim ctrForm As Control = LoadControl("ConvocatoriasFormControl.ascx")
ctrForm.ID = "Objeto_FormControl"
Me.Controls.Add(ctrForm)
'Pasamos el Store al Form
Dim Objeto_Store As Ext.Net.Store = Me.FindControl("Objeto_Store")
Me.FindControl("Objeto_FormControl").GetType.GetProperty("GridStore").SetValue(Me.FindControl("Objeto_FormControl"), Objeto_Store, Nothing)
End Sub
#End Region
FORM Design------------------------------
<ext:Window ID="Objeto_Window" runat="server" Icon="LayoutContent" Title="Convocatoria de Ayuda"
AutoShow="false" Modal="true" Hidden="true" Layout="Fit" Collapsible="false"
Width="670" Height="500" AutoScroll="true">
<Content>
<ext:ComboBox ID="ComboTipo" runat="server" FieldLabel="Tipo" AllowBlank="false" CausesValidation="true" >
</ext:ComboBox>
</ Content >
<Buttons>
<ext:Button ID="Save_Button" runat="server" Text="Guardar" Icon="Disk">
<DirectEvents>
<Click OnEvent="saveForm" Before="var valid= #{Objeto_FormPanel}.getForm().isValid(); if(valid){#{Objeto_StatusBar}.showBusy('Guardando formulario...');} return valid;"
IsUpload="true">
<EventMask ShowMask="true" MinDelay="1000" Target="CustomTarget" CustomTarget="={#{Objeto_FormPanel}.getEl()}" />
</Click>
</DirectEvents>
</ext:Button>
</Buttons>
<BottomBar>
<ext:StatusBar ID="Objeto_StatusBar" runat="server" DefaultText="Complete el formulario">
<Plugins>
<ext:ValidationStatus ShowText="El formulario contiene errores (Haga click para ver los detalles)."
ID="Objeto_ValidationStatus" runat="server" FormPanelID="Objeto_FormPanel" ValidIcon="Accept"
ErrorIcon="Exclamation" />
</Plugins>
</ext:StatusBar>
</BottomBar>
</ext:TabPanel>
</Content>
</ext:Window>
The problem is that:1 First load the ?init? event of the list
2 Load ?init? event of the form
3 Load again ?init? event of the list
4 Load again ?init? event of the form
5 Run event "OnRefreshData" and load data.
How I can do to load "init" event (list & form) once time? (We think the problem is coming from AutoLoad at store)
Thanks in advice
Last edited by Daniil; Jul 07, 2011 at 11:31 AM.
Reason: [CLOSED]