使用按钮向UserHolder添加UserControl列表 - 没有事件?

时间:2009-05-21 01:40:11

标签: c# asp.net user-controls event-handling loadcontrol

我想利用其中包含多个控制元素的“复杂”用户控件。这是我将在列表中重用的控件,我已经有了一个PlaceHolder控件。

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

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

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

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

我怎么在这里做错了?

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

1 个答案:

答案 0 :(得分:1)

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

换句话说,你做错了三件事之一:

1)您在回发后的Init阶段创建阶段分配链接按钮的ID

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

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

在没有看到你的代码的情况下,我不能给出更具体的信息。