我正在开发一个 ASP.NET 应用程序,我正在尝试执行以下操作:
我将只将一个 ASPX 页面分成两列。左列将是一个 TreeView,右列将是编辑树视图节点的东西。
当用户可以在右栏中选择要编辑的树视图的节点时。根据右列上节点的深度字段会有所不同。
例如,我想知道使用 ASCX 控件并使用 AJAX 动态加载右列。有更好的选择吗?我可以这样做吗?
编辑:
当用户想要编辑树视图的节点时,我不想重新加载整个页面。也许我需要在右列上添加一个 UpdatePanel,不是吗?
我正在开发一个 ASP.NET 应用程序,我正在尝试执行以下操作:
我将只将一个 ASPX 页面分成两列。左列将是一个 TreeView,右列将是编辑树视图节点的东西。
当用户可以在右栏中选择要编辑的树视图的节点时。根据右列上节点的深度字段会有所不同。
例如,我想知道使用 ASCX 控件并使用 AJAX 动态加载右列。有更好的选择吗?我可以这样做吗?
编辑:
当用户想要编辑树视图的节点时,我不想重新加载整个页面。也许我需要在右列上添加一个 UpdatePanel,不是吗?
一般来说,是的,这是可以做到的,并且使用不同的 .NET ajax 框架并不难做到。
很难提出“更好的选择”,因为这取决于您构建应用程序的方式以及对它的不同要求。
将树视图包装在 UpdatePanel 中,并在代码隐藏中添加以下代码。(假设您的右侧面板称为“PanelOnTheRight”,并且您有一个带有属性“IdToEdit”的用户控件“MyEditControl”)。
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);
}
您可以使用 Page.LoadControl 方法来加载用户控件。但我不确定它是否适用于 Ajax