2013-05-06 2 views
0

Je rencontre des problèmes lors de la dévolution de mon application .net. J'utilise l'événement OnTextChanged sur une zone de texte pour changer le contenu dans une autre Textbox, la première zone de texte a AutoPostBack = "true", mais quand j'écris dedans et que je clique dans une autre partie, la page s'actualise complètement.ASP.NET: TextBox OnTextChanged MVC actualise la page entière

ici est mon code ascx:

<form id="Form1" runat="server"> 
    Change text 
    <asp:TextBox id="txt1" runat="server" ontextchanged="ejemplo" autopostback="true"/> 
    <p><asp:Label id="lbl1" runat="server" /></p> 
</form> 

et le script dans la même page ascx:

<script runat="server"> 
protected void ejemplo(object sender, EventArgs e) 
     { 
      lbl1.Text = "Changed"; 
     } 
</script> 

J'utilise MVC4, Merci pour vos réponses.

EDIT:

est ici une vidéo de ce qui se passe réellement: http://remainedesign.com/video/asd.html

Répondre

0

Le cycle de vie du MVC et des formes de bande sont tous deux différents. MVC est pas sur les contrôles serveur .... viewstate ... aucun événement cycle de vie de la page sous forme de web ...

What is the 'page lifecycle' of an ASP.NET MVC page, compared to ASP.NET WebForms? this helps .. Maintenant

venir à votre point.

si vous voulez afficher quelque chose dans la TextBox2 en entrant une valeur dans la Textbox1 vous devez utiliser script côté client, voir exemple ci-dessous

javascript

<script type="text/javascript" language="javascript"> 
     function textCounter(field, field2, maxlimit) { 
      var countfield = document.getElementById(field2); 
      if (field.value.length > maxlimit) { 
       field.value = field.value.substring(0, maxlimit); 
       return false; 
      } else { 
       countfield.value = maxlimit - field.value.length; 
      } 
     } 
</script> 

Votre Html Page

<%using (Html.BeginForm("Index", "Account", FormMethod.Post)) // here index is a ActionName, Account is a controller name 
     {%> 

<input type="text" id="textbox1" name="Message" onkeyup="textCounter(this,'textbox2',208)"/> 

<input disabled maxlength="3" size="3" value="208" id="textbox2" /></label> 

<input type="submit" value="Send" /> 
<%}%> 

Ici
La fonction textCounter() de l'événement keyup dans textbox1 affichera la valeur dans textbox2,

soumettre bouton soumettre le formulaire qui appellent une action « index » sur le contrôleur « compte », voir ci-dessous comment acte d'action

public class AccountController : Controller 
{ 
    [HttpPost] 
    public ActionResult index(FormCollection result) 
    { 
    string TextBoxValue=result["Message"]; 
    return view("yourviewname"); 
    } 
} 

s'il vous plaît noter, exemple ci-dessus est uniquement pour le projet MVC

J'espère que cela exemple peut vous aider ..

+0

Ok maintenant c'est beaucoup clair, merci beaucoup – Creativelair

0

la première zone de texte a AutoPostBack = "true", mais quand j'écris et cliquez dans une autre partie, la page se rafraîchit complètement

C'est exactement ce à quoi sert AutoPostBack. Si vous cliquez sur une autre partie, c'est lorsque vous perdez le focus sur la zone de texte et que cela déclenchera une publication. Si vous avez besoin d'autres preuves puis read this from MSDN:

Obtient ou définit une valeur qui indique si un postback automatique le serveur se produit lorsque le contrôle TextBox perd le focus.

+0

Merci pour votre réponse, mais je n'ai aucun problème avec l'actualisation, le problème est que le texte que je dois mettre à jour lorsque l'événement est lancé ne change pas, ça ne marche pas, tout simplement ça rafraîchit toute la page et ne fait plus rien. – Creativelair

+0

"... je n'ai aucun problème avec le rafraîchissement ...", "... quand l'événement est lancé ne change pas, ça ne marche pas, il suffit simplement de rafraîchir toute la page ..." - Je pense que vous sont confus à ce qui se passe. S'il vous plaît lire ma réponse à nouveau. La raison pour laquelle il ne fonctionne pas est parce que votre page est rafraîchissante. Peut-être que vous vouliez faire une publication ajax sur votre boîte de texte. –

+0

Salut von et merci pour la réponse, j'essaie ce tutoriel: http://asp-net-example.blogspot.com/2009/03/how-to-use-ontextchanged-event-in.html Il utilise l'AutoPostBack et changer le contenu dans une zone de texte lorsque l'autre réponse à l'événement OnTextChange, je ne sais pas ce qui est mal, il ne semble pas mauvais – Creativelair

Questions connexes