2009-05-21 54 views
0

我想利用“复杂”usercontrols与多个控制元素内。这是我将在列表中重复使用的相同控件,并且我已经有一个PlaceHolder控件。使用按钮将用户控件列表添加到PlaceHolder - no event?

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

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

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

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

这是怎么回事?

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

+0

请发布生成LinkBut​​ton并绑定其事件的代码隐藏。 – ichiban 2009-05-21 01:50:45

+0

感谢您的时间,我试图在示例网站中重现问题,现在它按预期工作?!! ??! 我相信它与我在同一页面上运行的相当复杂的AJAX功能有关。因为没有这些代码完美地工作。 我该如何继续?我要删除这个问题还是关闭它或什么? – BerggreenDK 2009-05-21 02:22:26

回答

1

事件“失去”的唯一原因是因为你的控件不会以这样的方式重新创建,ASP.Net可以在回发后将事件与控件相关联。它通过使用ID属性来完成。过程中的初始化阶段创建回发

2后

1)你分配你的了LinkBut​​ton不同的ID的)你:

换句话说,你正在做的三件事情错了'使用代码动态创建链接按钮,但是在页面生命周期的初始阶段之后进行,以便您的控件不参与ViewState。

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

没有看到你的代码,我不能给任何更具体的比那不幸。