需求: ASP.NET项目,页面有基类,要求实现日志记录画面动作。
问题: 如果通过在事件的方法内指定事件发生的控件,一是给开发人员带来了负担,二是因为任何事件回发时都会走Page_Load事件,这样在日志中虽然是一次事件(当然记录的方法名是不同的),但是却分为了“页面初始化”和“按钮点击”两个事件。
解决方案: 通过客户端的HTTP请求,查询请求中是否有要求回发的控件,获得控件ID作为页面回发事件的标识。
代码如下:
Partial Public Class _DefaultClass _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Write(GetEventId())
End Sub
Private Function GetEventId()Function GetEventId() As String
Dim mEventId As String = String.Empty
If IsPostBack Then
If Not