在Page_Load 中判断是哪个控件触发了postback(Detect in Page_Load which control caused a postback)...

本文介绍了一种用于检测ASP.NET页面中特定控件(如Button、LinkButton和ImageButton)是否触发了PostBack的有效方法。通过自定义函数DidControlCausePostBack,可以准确判断页面回发是否由指定控件引起。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Private Function DidControlCausePostBack(ByVal uniqueID As StringAs Boolean

        
Dim bool As Boolean = False

        bool 
= (Not Request.Form(uniqueID) Is NothingOrElse (Not Request.Form("__EVENTTARGET"Is Nothing AndAlso Request.Form("__EVENTTARGET").Equals(uniqueID)) OrElse ((Not Request.Form(uniqueID & ".x"Is NothingAndAlso (Not Request.Form(uniqueID & ".y"Is Nothing))

        
Return bool

    
End Function
private bool DidControlCausePostBack(string uniqueID)
{

 
return (!(Request.Form[uniqueID] == null)) || (!(Request.Form["__EVENTTARGET"== null&& Request.Form["__EVENTTARGET"].Equals(uniqueID)) || ((!(Request.Form[uniqueID + ".x"== null)) && (!(Request.Form[uniqueID + ".y"== null)));
}

Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton
Protected WithEvents ImageButton1 As System.Web.UI.WebControls.ImageButton
Protected WithEvents Button1 As System.Web.UI.WebControls.Button

    
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        
If DidControlCausePostBack(Button1.UniqueID) Then
            Response.Write(
"Button1")
        
End If

        
If DidControlCausePostBack(LinkButton1.UniqueID) Then
            Response.Write(
"LinkButton1")
        
End If

        
If DidControlCausePostBack(ImageButton1.UniqueID) Then
            Response.Write(
"ImageButton1")
        
End If

    
End Sub

该方法仅对Buttons, LinkButtons and ImageButtons有效
From: http://aspadvice.com/blogs/joteke/archive/2004/08/05/2288.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值