ASP.NET TextBox événement LostFocus
J'ai besoin de déclencher le code sur le serveur, afin d'être appelé lorsqu'une zone de texte perd le focus.
Je sais qu'il y a onblur côté client de l'événement, et qu'il n'existe pas d'événement LostFocus, alors comment puis-je causer une publication à se produire lors de ma zone de texte perd le focus?
mise à Jour:
J'ai trouvé un blog qui semble donner pas mal de solution à cette question. Elle implique l'ajout d'un événement personnalisé à une zone de texte sous-classe, et l'enregistrement d'un script client qui appelle le serveur-côté de l'événement dans le onblur JavaScript client événement.
Ce qui suit est mon application en 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
OriginalL'auteur Patrick McDonald | 2009-08-21
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé un blog qui semble donner pas mal de solution à cette question. Elle implique l'ajout d'un événement personnalisé à une zone de texte sous-classe, et l'enregistrement d'un script client qui appelle le serveur-côté de l'événement dans le onblur JavaScript client événement.
Ce qui suit est mon application en VB:
OriginalL'auteur Patrick McDonald
Merci pour cela, il fonctionne comme un charme. Juste une chose que vous avez besoin de changer: envelopper l'id unique de la valeur passée à la OnBlurred fonction de guillemets, il est donc utilisé comme une chaîne de caractères et non pas l'instance de contrôle. Qui est:
devient:
OriginalL'auteur PjL
Bien, c'est assez bizarre plan, mais vous pouvez utiliser l'option "onblur" sur le côté client d'appeler " la forme.submit();'.
OriginalL'auteur Noon Silk
Pourquoi n'utilisez-vous pas asp zone de texte avec des AutoPostBack propriété est définie sur true.
OriginalL'auteur rahul