Динамически загружать элементы управления ASCX с помощью AJAX - PullRequest
2 голосов
/ 12 января 2010

Я занимаюсь разработкой приложения ASP.NET и пытаюсь сделать следующее:

Я собираюсь разделить только одну страницу ASPX на две колонки. В левом столбце будет TreeView, а в правом столбце будет что-то для редактирования узлов TreeView.

Когда пользователь может выбрать узел дерева для редактирования в правом столбце. В зависимости от глубины узла поля в правом столбце будут различаться.

Мне интересно использовать элементы управления ASCX и динамически загружать правый столбец, например, с помощью AJAX. Есть ли лучший выбор? Могу я это сделать?

EDIT:

Я не хочу перезагружать всю страницу, когда пользователь хочет редактировать узел дерева. Может мне понадобится UpdatePanel в правом столбце, не так ли?

Ответы [ 3 ]

3 голосов
/ 12 января 2010

В общем, да, это можно сделать, и это не так сложно сделать с помощью различных .NET ajax-фреймворков.

Трудно предложить «лучший выбор», потому что это зависит от того, как вы создаете свое приложение, и от различных требований к нему.

2 голосов
/ 12 января 2010

Оберните свое дерево внутри UpdatePanel и добавьте следующий код в коде. (при условии, что ваша правая панель называется PanelOnTheRight, и у вас есть пользовательский контроль MyEditControl со свойством IdToEdit)

void MyTreeView_SelectedNodeChanged(Object sender, EventArgs e)
{
    PanelOnTheRight.Controls.Clear();

    MyEditControl editControl = LoadControl("~/usercontrols/mycontrol.ascx");
    editControl.IdToEdit = ((TreeView)sender).SelectedNode.Value;

    PanelOnTheRight.Controls.Add(editControl);
}
0 голосов
/ 12 января 2010

Вы можете использовать метод Page.LoadControl для загрузки пользовательских элементов управления. Но я не уверен, работает ли он с Ajax

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