0

我有一个页面,我想在其中动态添加 asp.net 用户控件。场景是我们希望在控件的特定事件上,它会自行处理并在页面中加载另一个控件。

我无法解决如何做到这一点?

有人有好的想法吗?

4

2 回答 2

0

Webforms 还是 ASP.NET MVC?我会假设网络表单...

尝试使用 CompositeControl。如果涉及数据绑定,您可以使用 DataBoundCompositeControl。在 CreateCHildren 方法中,您可以动态创建控件并将它们添加到子集合中。下面是一个我创建过的相当复杂的 DataBoundCompositeControl 的示例(在内部子控件上进行事件处理):

脚手架控制

这实际上是一件很难做到的事情。只要记住每次都重建所有子控件并存储控件的状态,以便您可以正确地重新创建所有内容。

您将在回发时重建所有内容两次(并且在第一次 GET 上重建一次)。一次将控件重新创建到以前的状态,第二次处理数据绑定和事件处理后的更改。

于 2008-12-22T06:28:58.333 回答
0

让我们假设这种情况:

  • 您有一个购物车页面。
  • 装运控制已加载。
  • 用户单击下一步按钮。

--- 回传 ---

  1. 购物车页面已加载
  2. 装运控制已加载。
  3. 事件“点击”由装运控制处理。
  4. 出货控制被处置。
  5. 支付控制已加载。

您可以在 Session 实例中存储一个变量来确定需要加载哪个控件。

在购物车页面的 PageInit 中检索 Session 变量并加载相应的控件(步骤 1 和 2)。确保在 PageInit 中执行此操作,以便 ASP.NET 触发事件。

然后在装运控件的事件处理程序中更新 Session 变量(步骤 3)。

在购物车页面的 Page_LoadComplete 中,您处理装运控件(第 4 步)并加载付款控件(第 5 步)。

Scott Mitchell 写了一篇关于这种情况的精彩文章:http: //scottonwriting.net/sowBlog/posts/3962.aspx

于 2009-10-27T16:00:37.073 回答