如何检查asp.net Web应用程序中的哪个控件引发回发?
我有许多按钮,并希望在Page_Load方法中执行不同的任务,具体取决于单击了哪个按钮。
答案 0 :(得分:1)
要检查哪个控件导致回发,请使用Request.Form [“__ EVENTTARGET”]。这应该返回导致回发的控件的唯一ID。
修改强>
为此,您必须将按钮的UseSubmitBehavior
属性设置为false,这会导致它使用Asp Net回发机制
使用UseSubmitBehavior属性指定Button控件是使用客户端浏览器的提交机制还是ASP.NET回发机制。默认情况下,此属性的值为true,从而导致Button控件使用浏览器的提交机制。如果指定false,则ASP.NET页面框架将客户端脚本添加到页面以将表单发布到服务器。
当UseSubmitBehavior属性为false时,控件开发人员可以使用GetPostBackEventReference方法返回Button的客户端回发事件。 GetPostBackEventReference方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。
答案 1 :(得分:1)
您可以从' __ EVENTTARGET'获取回发控制ID。要求中的价值。 PARAMS
请查看以下article。
答案 2 :(得分:0)
在按钮的方法处理程序中,事件它包含对按钮的引用,因此您可以访问控件ID:
protected void Button1_Click(object sender, EventArgs e)
{
((System.Web.UI.WebControls.Button)sender).ID
}
EventArgs参数包含命令名称,可用于标识您需要执行的操作:
if (e.CommandName == "AddToCart")
{
Do something
}