2010-11-17 11 views
0

Ce que je cherche est de créer dynamiquement deux zones de texte à partir du code C# ASP.NET (soit un textbox normal ou un texte d'entrée HTML, cela ne me dérange pas).Définir un événement onblur dynamiquement dans le code ASP.NET

Et puis j'ai essayé (et échoué) de définir un événement qui se déclenche lorsque la première zone de texte perd le focus, donc, ce qui est écrit dans la première zone de texte doit être copié dans la deuxième zone de texte.

J'ai essayé d'utiliser l'événement onblur(), mais je face à un problème ... Puisque le corps de la fonction de l'événement onblur doit être écrit en JavaScript, donc mes deux zones de texte que j'ai créé dans le répertoire C# ASP.NET le fichier ne sera pas connu par le code JavaScript ...

Existe-t-il un moyen d'écrire le corps de l'événement onblur dans default.cs ...? Ou peut-être que je devrais trouver un autre moyen?

Répondre

2

Essayez le code suivant:

Markup

<asp:PlaceHolder runat="server" ID="textBoxPlaceHolder"></asp:PlaceHolder> 

code-behind

TextBox t1 = new TextBox(); 
t1.ID = "textBox1"; 

TextBox t2 = new TextBox(); 
t2.ID = "textBox2"; 

textBoxPlaceHolder.Controls.Add(t1); 
textBoxPlaceHolder.Controls.Add(t2); 

String javascript = "javascript:document.getElementById('" + t2.ClientID + "').value=this.value;"; 
t1.Attributes.Add("onblur", javascript);