Как загрузить однопользовательский элемент управления при выборе вкладки в asp.net - PullRequest
1 голос
/ 14 июня 2010

Я получил 15 вкладок и 15 пользовательских элементов управления, назначенных для каждой вкладки.Все загружаются сразу, идентификатор которого задерживает процесс.Я хочу загрузить один пользовательский элемент управления при выборе вкладки в контейнере вкладок.

Ответы [ 2 ]

0 голосов
/ 14 июня 2010

Вот полное решение. Разметка ...

<%@ Reference Control="~/MyUserControl.ascx" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<asp:TabContainer ID="TabContainer1" runat="server" AutoPostBack="true">
    <asp:TabPanel id="Tab1" runat="server">
        <HeaderTemplate>
            Tab1
        </HeaderTemplate>
        <ContentTemplate>
            Tab 1 static content
        </ContentTemplate>                
    </asp:TabPanel>
    <asp:TabPanel id="Tab2" runat="server">
        <HeaderTemplate>
            Tab2
        </HeaderTemplate>
        <ContentTemplate>
            <!-- user control will be loaded here -->
        </ContentTemplate>
    </asp:TabPanel>
</asp:TabContainer>

... и код:

Protected Sub TabContainer1_ActiveTabChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabContainer1.ActiveTabChanged
    If TabContainer1.ActiveTabIndex = 1 Then
        Dim uc As MyUserControl = CType(LoadControl("MyUserControl.ascx"), MyUserControl)
        Tab2.Controls.Add(uc)
    End If
End Sub
0 голосов
/ 14 июня 2010

Вместо того, чтобы декларативно добавлять все элементы управления на странице, добавьте их программно в событие изменения вкладки.Смотрите эту ссылку: http://msdn.microsoft.com/en-us/library/c0az2h86.aspx

Или вот краткая версия ..

  1. Измените объявление Регистра в верхней части страницы, указав ссылку:

    <% @ Reference Control = "MyUserControl.ascx"%>

  2. В событии изменения вкладки загрузите пользовательский файл из файла:

    Dim uc AsMyUserControl = CType (LoadControl ("MyUserControl.ascx"), MyUserControl)

  3. Добавить элемент управления на страницу:

    PlaceHolder1.Controls.Add (uc)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...