Альтернативы MultiView в ASP.NET

Веб-сайт, который я создаю, содержит большое количество представлений, которые будут отображаться в одном и том же месте, но скрыты или показаны в зависимости от того, как пользователь перемещается по меню.

Когда у вас есть MultiView с 10 различными представлениями, это становится довольно запутанным в представлении дизайна визуальных студий. Я уже разделил содержимое каждого представления на несколько пользовательских элементов управления. Но есть ли альтернатива MultiView?


person remdao    schedule 19.01.2010    source источник
comment
почему вы можете использовать мастер в asp.net   -  person senthilkumar2185    schedule 03.09.2014


Ответы (3)


Обычно я просто использую Panel или Placeholder и переключаю видимость вручную. Но тогда я тоже не использую конструктор VS...

person Bryan    schedule 19.01.2010

Предполагая, что вы используете здесь веб-формы ASP.NET...

Это еще одна причина инвестировать в некоторые мощные веб-элементы управления, такие как набор элементов управления Telerik ASP.NET.

Вы можете использовать их элемент управления RadTabStrip вместе с элементом управления RadMultiPage.

Пример здесь: http://demos.telerik.com/aspnet-ajax/tabstrip/examples/multipage/loading-external-content/defaultcs.aspx

Вы можете указать ContentUrl для каждого RadPageView, что позволяет разделить каждое представление на отдельные файлы aspx.

Это упрощает ваше решение, разделяя каждое представление на отдельную страницу, и повышает производительность, поскольку содержимое RadPageView запрашивается только при первоначальном просмотре.

person Scotty    schedule 03.09.2014

Я бы сделал это так, чтобы на странице был заполнитель и динамически добавлялись элементы управления по мере необходимости.

Из того, что вы сказали, похоже, что пользователь перемещается по меню, и это решает, какой вид отображать в элементе управления MultiView...

я бы так что-то вроде этого

ASPX-файл:

<asp:PlaceHolder id=phContentContainer" runat="server"></asp:PlaceHolder>

Код позади

switch (MenuSelection)
{
     case "LOGIN" //Display the login control
     {
        ucLoginUserControlType loginControl = (ucLoginUserControlType)LoadControl("~/UserControls/ucLoginUserControlType.ascx");

        phContentContainer.Controls.Add(loginControl);
     }
}

Очевидно, вы захотите, чтобы код программной части был немного более эффективным и чистым, чем вышеприведенное с 10 представлениями... но вы поняли идею.

Это упростит вашу страницу aspx и упростит реализацию будущих дополнений элементов управления.

Надеюсь, это поможет, я набрал код по памяти, поэтому некоторый синтаксис может быть неправильным - если вы не можете заставить его работать, дайте мне крик, и я найду несколько примеров, когда я это сделал.

Удачи!

person D3vy    schedule 03.09.2014