Как динамически управлять UserControl на странице ....? - PullRequest
1 голос
/ 31 декабря 2011

мой сценарий такой,

Мне нужно создать страницу администратора (раздел заголовка), в которой я должен выбрать один или несколько пользовательских элементов управления из раскрывающегося списка ....

, который будет добавлен на страницу динамически ....

как мне это сделать?

В настоящее время моя идея такова

когда кто-то выбирает и добавляет usercontrol из выпадающего списка, я добавляю теги usercontrols в текстовое поле и сохраняю его в db ...

и при вызове индексных страниц веб-сайта раздел заголовка будет отображаться из базы данных и отображаться ..

но как мне управлять управляющим тегом, который должен быть помещен вверху страницы в index.aspx при его рендеринге?

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

береги себя

1 Ответ

1 голос
/ 01 января 2012

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

  <asp:DropDownList ID="userControlSelection" runat="server" AutoPostBack="true"
    onselectedindexchanged="userControlSelection_SelectedIndexChanged">
      <asp:ListItem Value="1">User Control One</asp:ListItem>
      <asp:ListItem Value="2">User Control Two</asp:ListItem>
</asp:DropDownList>
<asp:Panel ID="controlHolder" runat="server" ></asp:Panel>

И в этом коде важная часть - это "this.LoadControl (" ~ / WebUserControl2.ascx ");"Посмотрите эту статью для получения дополнительной информации и загрузки пользовательских элементов управления Динамическое создание пользовательских элементов управления

protected void userControlSelection_SelectedIndexChanged(object sender, EventArgs e)
    {
        Control c = null;
        if (userControlSelection.SelectedValue == "1")
        {
            c = this.LoadControl("~/WebUserControl1.ascx");
        }
        else if (userControlSelection.SelectedValue == "2")
        {
            c = this.LoadControl("~/WebUserControl2.ascx");                
        }

        if (c != null)
        {
            controlHolder.Controls.Clear();
            controlHolder.Controls.Add(c);
        }
        else
        {
            //Throw some error
        }

    }

Надеюсь, это поможет, спасибо

...