使用AJAX动态加载ASCX控件

时间:2010-01-12 11:52:45

标签: c# asp.net-ajax ascx

我正在开发一个ASP.NET应用程序,我正在尝试执行以下操作:

我将只有一个ASPX页面分成两列。在左侧列将是TreeView,在右侧列将是编辑treeview节点的东西。

当用户可以在右列上选择要编辑的树视图节点时。根据节点的深度字段,右列会有所不同。

我想知道使用ASCX控件并使用AJAX动态加载右列。有更好的选择吗?我能这样做吗?

修改

当用户想要编辑treeview的节点时,我不想重新加载整个页面。也许我在右栏需要一个UpdatePanel,不是吗?

3 个答案:

答案 0 :(得分:3)

总的来说,是的,这可以用不同的.NET ajax框架来完成,并不是很难实现。

很难建议“更好的选择”,因为这取决于您构建应用程序的方式以及对它的不同要求。

答案 1 :(得分:2)

将您的树视图包含在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);
}

答案 2 :(得分:0)

您可以使用Page.LoadControl方法加载用户控件。但我不确定它是否适用于Ajax