UserControl事件第一次不起作用

时间:2009-04-30 13:59:25

标签: asp.net events user-controls

我动态地在网页中调用我的用户控件。 当我第一次单击用户控件上的按钮时,事件未触发。当我第二次点击相同的事件时,事件正在激活..

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:3)

听起来像按钮的连接OnClick事件没有发生在每个页面加载,这是必需的。

您是否可以保证在添加控件时以及在页面返回后执行连接?我总是将我的事件挂钩放在Page_Init或Page_Load事件处理程序中以及任何回发检查之外。尝试在Handler挂钩上放置一个断点,看看断点是否被“击中”两次。

按钮的事件连接看起来类似于:

protected void Page_Load(object sender, EventArgs e)
{
    btnSearch.Click += new EventHandler(btnSearch_Click); // breakpoint on this line
}

答案 1 :(得分:2)

控件的客户端ID来自所有包含INamingContainer接口标记的控件的ID。因此,请确保层次结构中的所有控件都具有固定ID。

例如,如果在Repeater中有一个Button控件,则会连接按钮和转发器的ID以生成按钮的客户端ID。因此,转发器和按钮在回发中应具有相同的ID。

您可以将第一个请求的HTML与第二个请求的HTML进行比较,以快速确定这是否是问题。

答案 2 :(得分:1)

为动态创建的控件分配ID - 否则不会触发任何事件。

答案 3 :(得分:0)

在按下按钮之前,您是否在等待下载整页?

事件是ASP.Net在页面中隐藏的javascript函数,可能在您点击时不存在。