Использование одного и того же экземпляра элемента управления в разных представлениях ASP.net MultiView

У меня есть элемент управления asp:MultiView с двумя представлениями и двумя пользовательскими элементами управления. В первом представлении я хочу поместить каждый элемент управления в отдельную вкладку ASPxTabControl. Во втором представлении я хочу отображать два элемента управления непрерывно, один за другим.

Как я могу добиться того, чтобы в каждом представлении использовался / просматривался один и тот же экземпляр элемента управления с точно такими же состояниями представления, когда я переключаюсь между представлениями?

Или есть даже лучший способ вместо использования MutliView?

Заранее большое спасибо за ваш ответ.

ура

1 ответ

Попробуйте это на своей странице ASPX:

    <asp:MultiView ID="mvTest" ActiveViewIndex="0" runat="server">
        <asp:View ID="vwFirst" runat="server">
            <asp:PlaceHolder ID="phFirstContainer" runat="server" ></asp:PlaceHolder>
        </asp:View>
        <asp:View ID="vwSecond" runat="server">
            <asp:PlaceHolder ID="phSecondContainer" runat="server" ></asp:PlaceHolder>
        </asp:View>
    </asp:MultiView>
    <asp:Button runat="server" ID="btnSwitchViews" Text="Switch Views" OnClick="btnSwitchViews_Click"/>

И это на вашей странице кода ASPX.CS:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        var myControl = new Label() {ID = "MyTextControl"};

        if (mvTest.GetActiveView().ID == "vwFirst")
        {
            myControl.Text = "I'm the same controller on the first view";
            phFirstContainer.Controls.Add(myControl);
        }
        else if(mvTest.GetActiveView().ID == "vwSecond")
        {
            myControl.Text = "I'm the same controller on the second view";
            phSecondContainer.Controls.Add(myControl);
        }
    }

    protected void btnSwitchViews_Click(object sender, EventArgs e)
    {
        mvTest.ActiveViewIndex = mvTest.ActiveViewIndex == 0 ? 1 : 0;
    }

Я использую метку ASP.NET для простоты, но вы можете легко использовать пользовательский элемент управления, создавая его программно, используя тип рассматриваемых пользовательских элементов управления.

Другие вопросы по тегам