2009-04-30 87 views
3

我在网页中动态调用我的用户控件。 我第一次单击用户控件上的按钮时,事件不会触发。当我点击相同的第二次,该事件被解雇..UserControl事件第一次不工作

谁能帮助我?

回答

2

控制的客户机ID是从标有INamingContainer接口的所有包含控件的ID的。所以,确保层次结构中的所有控件都有一个固定的ID。

例如,如果你有一个中继器内按钮控制,按钮和中继器的ID被连接起来,使该按钮的客户端ID。因此,中继器和按钮在回发期间应该具有相同的ID。

您可以比较HTML与第二请求的HTML的第一个请求,以迅速确定这就是问题所在。

+0

谢谢,这解决了我一直在努力的问题! – 2009-09-17 10:13:13

1

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

3

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

你能保证,当你添加控件和poastback页面后,正在执行的转播?我总是将我的事件挂钩放入Page_Init或Page_Load事件处理程序中并在任何Postback检查之外。尝试在Handler挂钩上放置一个断点,并查看断点是否被“打”两次。

事件转播的按钮看起来类似于:

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

你等待下载整版的按下按钮之前?

的事件是由ASP.Net页面隐藏的JavaScript函数,也许根本不存在你点击的时间。