确定哪个控件引发回发

本文关键字:控件 | 更新日期: 2023-09-27 18:15:14

知道如何检查asp.net web应用程序中的哪个控件引发回发吗?

我有许多按钮,并希望在Page_Load方法中执行不同的任务,这取决于单击了哪个按钮。

确定哪个控件引发回发

要检查哪个控件导致回发,使用Request.Form["__EVENTTARGET"]。这将返回引起回发的控件的唯一ID。

编辑要做到这一点,你必须将按钮的UseSubmitBehavior属性设置为false,使其使用asp.net post back机制

使用UseSubmitBehavior属性指定Button控件是使用客户端浏览器的提交机制还是使用ASP. js的提交机制。. NET回发机制。默认情况下,此属性的值为true,从而使Button控件使用浏览器的提交机制。如果指定为false,则ASP。. NET页面框架将客户端脚本添加到页面中,以将表单发送到服务器。

当UseSubmitBehavior属性为false时,控件开发人员可以使用GetPostBackEventReference方法返回按钮的客户端回发事件。GetPostBackEventReference方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。

从MSDN

您可以从请求中的'__EVENTTARGET'值获得回发控制id。参数

请看下面的文章

在按钮事件的方法处理程序中它包含对按钮的引用,因此您可以访问控件id:

protected void Button1_Click(object sender, EventArgs e)
{
  ((System.Web.UI.WebControls.Button)sender).ID
}

EventArgs参数包含命令名,可以用来确定你需要做什么:

if (e.CommandName == "AddToCart")
{   
    Do something
}