自定义控制事件不是第一次触发

时间:2009-08-05 19:03:48

标签: asp.net

我的应用程序从单个页面(default.aspx)运行,并根据用户选择的内容加载自定义控件(这在LoadPage事件中完成)。

问题是第一次将一些新控件加载到页面上并单击一个按钮时,该页面不会触发Click事件。使用GridView和其他控件时也会发生这种情况。

但是,如果我只是第二次重新加载页面,则会正确触发事件。 (这次每次都成功)

两个问题: 1)为什么会发生这种情况? 2)如何更好地排除故障?我已经尝试检查Request.Form(__ EVENTTARGET)(这是空白的)

有时它可以正常工作,这表明发布了PostBack问题 - 但这并不明显。

1 个答案:

答案 0 :(得分:1)

我已经确定了问题的根源,并想在此处注明,以便它可以帮助其他人。

有问题的代码有三种不同的方法,分配了自定义控件ID属性。其中两个方法是动态执行,因此第一次进入时,自定义控件的ID为“UserProfile” - 第二次(在回发期间),它变为“uc1”(用户控件1)。因此,由于两个ID不相同,ASP.Net不会将它们识别为相同的控件。

它回发的第二次,它使用了第二种方法,因此控件是相同的,并且确实得到了更新。