Я недавно обновил эту конфигурацию:
ASP.NET 2.0
AjaxControlToolkit, 1.0.20229.0
System.Web.Extensions, Version=2.0.0.0
Для
ASP.NET 3.5
System.Web.Extensions, Version=3.5.0.0
AjaxControlToolkit , Version=3.5.40412.0
У меня есть следующая структура:
<asp:ToolkitScriptManager ID="PageScriptManager" runat="server">
</asp:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Always">
<ContentTemplate>
<ajaxToolkit:TabContainer
OnActiveTabChanged="TabContainerCarga_ActiveTabChanged"
AutoPostBack="True">
<ajaxToolkit:TabPanel
ID="tabRelatorios"
runat="server"
HeaderText="Relatórios">
<ContentTemplate>
<CustomUserControl:relatorios id="CustomControl" Visible="False" runat="server" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="CustomControl" />
</Triggers>
</ajaxToolkit:TabPanel>
<ajaxToolkit:TabPanel ... />
<ajaxToolkit:TabPanel ... />
<ajaxToolkit:TabPanel ... />
<ajaxToolkit:TabPanel ... />
У всех одинаковая первая структура. На серверном коде у меня есть:
protected void TabContainerCarga_ActiveTabChanged(object sender, EventArgs e)
{
//handles TabPanels show/hide and fill up forms grids.
}
CustomControl имеет сетку, в которой есть несколько постбэков для выполнения таких операций, как добавление и удаление записей. Когда CustomControl загружается, он заполняет два <asp:DataGrid />
компонента.
<asp:DataGrid />
загрузить список
с некоторым текстовым полем, которое пользователь
может заполнить и нажать кнопку, чтобы
добавить записи.
<asp:DataGrid
/>
показать любую введенную информацию. В целях истории.
Странное известное поведение - фактически активировать ActiveTabChanged дважды. В первый раз он действует так, как будто я загружаю состояние CustomControl в первый раз, и они отправляют событие.
Я не могу использовать какое-то решение, которое я видел, например установить флаг isFormLoaded или даже запустить функцию postBack javascript.
Я думаю о размещении флага IsLoaded, структурированного в ViewState внутри элемента управления. И перезапустите его после любого инициированного события внутри пользовательского элемента управления.
Что вы думаете по этому поводу, и есть ли какое-нибудь решение?