Tôi cần kích hoạt mã ở phía máy chủ để được gọi khi một TextBox mất tiêu điểm.ASP.NET TextBox Sự kiện LostFocus
Tôi biết có sự kiện bên khách hàng onblur, và rằng không có sự kiện LostFocus, vậy làm cách nào tôi có thể gây ra một postback xảy ra khi TextBox của tôi bị mất tiêu điểm?
Cập nhật:
Tôi đã tìm thấy một blog mà dường như để cho một giải pháp khá tốt cho việc này. Nó liên quan đến việc thêm một sự kiện tùy chỉnh vào một lớp con TextBox và đăng ký một kịch bản lệnh khách gọi là sự kiện phía máy chủ trong sự kiện khách hàng JavaScript onblur.
Sau đây là thực hiện của tôi trong VB:
Public Class MyTextBox
Inherits TextBox
Implements IPostBackEventHandler
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
MyBase.OnInit(e)
If Not Page.ClientScript.IsClientScriptBlockRegistered("OnBlurTextBoxEvent") Then
Page.ClientScript.RegisterStartupScript(MyBase.GetType, "OnBlurTextBoxEvent", GetScript, True)
Attributes.Add("onblur", "OnBlurred('" & UniqueID & "','')")
End If
End Sub
Public Delegate Sub OnBlurDelegate(ByVal sender As Object, ByVal e As EventArgs)
Public Event Blur As OnBlurDelegate
Protected Sub OnBlur()
RaiseEvent Blur(Me, EventArgs.Empty)
End Sub
Private Function GetScript() As String
Return "function OnBlurred(control, arg)" & vbCrLf & _
"{" & vbCrLf & _
" __doPostBack(control, arg);" & vbCrLf & _
"}"
End Function
Public Sub RaisePostBackEvent(ByVal eventArgument As String) Implements System.Web.UI.IPostBackEventHandler.RaisePostBackEvent
OnBlur()
End Sub
End Class
tôi không thử loại này như tôi cần phải biết những gì điều khiển đã bị mất tập trung –