0

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

我可以使用LoadControl(path to .ascx)添加控件- 没问题。

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

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

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

怎么会或我在这里做错了什么?

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

4

1 回答 1

1

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

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

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

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

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

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

于 2009-05-21T02:14:54.837 回答