2012-01-10 4 views
2

comment remplir la zone de texte dans asp.net pendant que je tape un autre texte .. modifications dans un textbox affectera dans une autre boîte de texte automatique .. et sans rafraîchir ma page.Remplissage automatique Zone de texte dans ASP.NET en fonction du texte tapé dans une autre zone de texte

+0

Avez-vous essayé d'utiliser l'événement 'OnTextChanged'? avez-vous essayé _anything_? – Shai

+0

Utilisez-vous jQuery sur ce projet? –

+0

Vous devez utiliser JavaScript. Le moyen le plus simple - avec jQueyr comme Claudio suggéré. De cette façon, c'est 3 lignes de code ou plus. – ub1k

Répondre

2

Ok, essayez ceci. Vous aurez besoin de la boîte à outils de contrôle AJAX. Alors lisez l'article Installing AJAX Control Toolkit 4 in Visual Studio 2010 pour voir comment l'installer dans Visual Studio.

Ensuite, vous devez ajouter un ScriptManager à votre page ASPX. Vous devez ajouter le code suivant:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 

Ce que vous devez alors faire est d'ajouter un UpdatePanel à votre page. Dans ce panneau de mise à jour, vous devez placer la zone de texte. Cela signifie que seuls les contrôles du panneau de mise à jour seront actualisés, et non la totalité de la page. Pour ce faire, ajoutez le code suivant:

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 

    <!--Add your Textbox Control to update here: Textbox1--> 
    <asp:TextBox ID="Textbox1" runat="server" ReadOnly="True"></asp:TextBox> 
    <asp:TextBox ID="Textbox2" runat="server" ReadOnly="True" ontextchanged="Textbox2_TextChanged"></asp:TextBox>        

    </ContentTemplate> 
    <Triggers> 
     <!--This is the textbox you will be typing text into: TextBox2--> 
     <asp:AsyncPostBackTrigger ControlID="Textbox2" EventName="TextChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 

Le Trigger indique votre page qui contrôle sur le formulaire doit lancer la publication. Maintenant, dans votre fichier .cs, vous devez ajouter le gestionnaire d'événements pour l'événement TextChanged Textbox2. Ajoutez le code suivant:

protected void Textbox2_TextChanged(object sender, EventArgs e) 
{ 
    // Set the text of textbox1 = textbox2 
} 

J'espère que cela aide.

+0

c'était très utile, merci :) – Mido

1

Vous aurez besoin d'utiliser Javascript pour accomplir ceci. Le code ASP.Net s'exécute du côté serveur, ce qui signifie qu'il ne peut pas affecter la page sans qu'une publication ne soit effectuée en premier. Lire sur l'événement OnTextChanged et comment s'y connecter avec javascript. Il y a une bibliothèque javascript appelée jQuery qui rend tout plus facile, bien que ce ne soit pas strictement nécessaire.

0

Utilisez JQuery. Vous devrez peut-être effectuer un appel AJAX au serveur si vous comptez sur une source de données telle qu'une base de données pour autofiler ce champ.

2

Pas besoin d'AJAX. JQuery est assez. Le code fera

$('#text1').bind('keyup', function(){ 

    $('#text2').val($('#text1').val()); 

}); 

En supposant

  1. id text1 de la boîte dans l'écriture.
  2. zone de texte texte2 que le texte est copié à

en .Net vous devrez utiliser votre numéro de client pour obtenir l'ID correct il peut ressembler à ceci

$('<%=text1.ClientID%>').bind('keyup', function(){ 

    $('<%=text2.ClientID%>').val($('#text1').val()); 

}); 

Oh, et l'envelopper dans $(document).ready selon la norme. Et de coures vous devez inclure la bibliothèque JQuery à votre page.

Aucune publication ou actualisation de la page. C'est votre solution la plus légère et facile à mettre en œuvre.

Questions connexes