动态创建 ASP.NET 用户控件的许多实例:我如何创建它,我的冲突会在哪里?
-
26-09-2019 - |
题
我以前没有在 ASP.NET 中看到过这种实现,但我正在考虑一个外观和行为如下的 UI:
概念概述
- TabControl 已加载,第一个选项卡包含网格
- 双击一行时,将创建一个包含记录详细信息的新选项卡
- 选项卡/记录详细信息的内容由用户控件创建
- 可以创建许多选项卡,因此将创建用户控件的许多实例
我知道 ASP.NET 会重命名我的 (runat="server"
) ID 适合我,我可以使用 jQuery 或 ASP.NET 服务器端代码来处理 ID...我的担忧是:
- 我怎样才能要求 ASP.NET 为我的用户控件的每个 N 个实例生成一个唯一的 ID(在占位符中呈现)
- 我如何实际创建该控件的额外实例?
- 我还需要记住什么?
因为我不想回发,所以我正在考虑将我的实现基于 ComponentArt 回调控制, ,并使用 ASP.net 用户控件来实现此效果。这将允许我做大多数需要回发的事情,但不会刷新页面上的所有元素......只是包含用户控件的部分。话虽如此,我并不局限于特定的实现。
解决方案
您应该查看 Page.LoadControl 方法。它工作得很好,据我记得你在页面上放置了占位符并将控件加载到占位符中,这就是你控制 id 的方式。
使用此方法效果不佳的一件事是当您的控件引发 Page 对象必须处理的事件时。如果您的控件是独立的,那么您应该不会有问题。
这可能会帮助您开始:http://www.codeproject.com/KB/aspnet/LoadingUSerControl.aspx
不隶属于 StackOverflow