【发布时间】:2012-02-21 13:44:31
【问题描述】:
我有一个按钮和一个面板。当用户单击按钮时,它会加载一个用户控件并将其添加到panel.Controls。当用户控件第一次加载(Page_Load)时,我需要在用户控件中绑定一个网格,而不是当用户单击用户控件内的按钮时,即触发用户控件中的回发。我不能使用Page.IsPostback,因为当用户单击加载用户控件的主按钮时它返回true。我能做什么?
【问题讨论】:
标签: asp.net user-controls
我有一个按钮和一个面板。当用户单击按钮时,它会加载一个用户控件并将其添加到panel.Controls。当用户控件第一次加载(Page_Load)时,我需要在用户控件中绑定一个网格,而不是当用户单击用户控件内的按钮时,即触发用户控件中的回发。我不能使用Page.IsPostback,因为当用户单击加载用户控件的主按钮时它返回true。我能做什么?
【问题讨论】:
标签: asp.net user-controls
这是原始的,但您可以通过比较来自以下的值来检查导致回发的任何控件:
Request.Form.Get("__EVENTTARGET")
这将返回目标控件的唯一ID;检查此项以确定哪个按钮导致回发,并采取相应措施。
【讨论】:
您可以给用户控件内部的按钮一个 CommandName 并检查 CommandName 的值。您还可以检查对象发件人的类型以确定导致回发的控件。
不要忘记,在动态创建后(如果发生在页面加载之前的事件),您必须在每个帖子上重新添加用户控件,因此您需要实现一种机制来确定面板中添加了用户控件。
【讨论】: