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

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

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

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

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

Приветствия

1 Ответ

0 голосов
/ 10 октября 2014

Попробуйте на странице 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 для простоты, но вы можете легко использовать пользовательский элемент управления, создавая его программно, используя тип рассматриваемых пользовательских элементов управления.

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