我想利用其中包含多个控制元素的“复杂”用户控件。这与我将在列表中重复使用的控件相同,并且我已经为它准备了一个 PlaceHolder 控件。

我可以添加控件 LoadControl(.ascx 的路径) - 没问题。

我也可以通过自定义属性获取/设置访问嵌入的标签,这样我就可以完美地初始化每个控件。

但是当添加 LinkBut​​tons 时,我遇到了麻烦/问题。

当我单击该按钮时,我确实得到了呈现控件的页面的“提交”信息;但控件自己的按钮事件似乎没有触发(或者至少父页面上的 PageLoad 似乎首先触发?) - 我无法弄清楚我的事件去哪里或在哪里寻找名称/ID 或参数按钮。

为什么或者我在这里做错了什么?

我现在通过使用标签 more 和带有 URL 中 ID 的“硬编码 A HREF”制作了一个“假按钮”,但我想了解我需要捕获什么事件以及在何处或如何初始化按钮,因为我希望能够对这些用户控件使用“默认 ASP.NET”控件(希望没有太多的拼凑编码)...

有帮助吗?

解决方案

事件“丢失”的唯一原因是您的控件没有以 ASP.Net 在回发后将事件与控件关联的方式重新创建。它通过使用 ID 属性来实现这一点。

换句话说,您做错了以下三件事之一:

1) 在回发后 Init 中的创建阶段,您以不同的方式分配链接按钮的 ID

2) 您正在使用代码动态创建链接按钮,但您是在页面生命周期的 Init 阶段之后执行此操作,以便您的控件不参与 ViewState。

3)您在每次回发时重新绑定包含链接按钮的父控件的数据源。使用 if (!IsPostBack) 以防止每次都重新绑定。

不幸的是,在没有看到您的代码的情况下,我无法提供比这更具体的内容。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top