在动态创建的UserControl中检测自回程

时间:2012-02-21 13:44:31

标签: asp.net user-controls

我有一个按钮和一个面板。当用户单击该按钮时,它会加载用户控件并将其添加到panel.Controls。我需要在usercontrol首次加载(Page_Load)时绑定usercontrol中的网格,而不是当用户单击usercontrol中的按钮时绑定网格,也就是触发usercontrol中的回发。我无法使用Page.IsPostback,因为当用户单击加载usercontrol的主按钮时它返回true。我该怎么办?

2 个答案:

答案 0 :(得分:1)

这是原始的,但您可以通过比较来自以下内容的值来检查导致回发的任何控件:

Request.Form.Get("__EVENTTARGET")

这将返回目标控件的uniqueID;选中此项以确定哪个按钮导致回发,并采取相应的行动。

答案 1 :(得分:0)

您可以为用户控件内的按钮提供CommandName并检查CommandName的值。您还可以检查对象发送方的类型,以确定导致回发的控件。

不要忘记,在动态创建每个帖子后,您必须重新添加用户控件(在页面加载之前发生的事件中),因此您需要实现一种机制来确定用户控件已添加到面板中。