Domanda

Ho due caselle di testo, Text1 e Text2, in un pannello di aggiornamento. Il codice è qui:

 <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="Panle" >
        <ContentTemplate>
        <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="true" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
        <asp:TextBox ID="TextBox2" runat="server" AutoPostBack="True"></asp:TextBox>
        </ContentTemplate> 
        </asp:UpdatePanel>

E ho scritto questo codice su textchanged evento di text1:

  Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        TextBox2.Text = TextBox1.Text
    End Sub

Ora il problema è che quando inserisco il testo in text1, quindi premi Invio in poi il testo di text2 è uguale al testo di text1, ma voglio farlo prima di premere ENTER in text1. Voglio dire, come ho chiarito in text1, quindi il testo di text2 dovrebbe essere uguale a text2.

È stato utile?

Soluzione

Se si desidera gestire l'evento Keydown, hai bisogno di JavaScript:

<asp:TextBox ID="TextBox1" onkeydown="document.getElementById('TextBox2').value=this.value" runat="server" AutoPostBack="false"></asp:TextBox>

Altri suggerimenti

Puoi usare jQuery per fare quello che vuoi.

$('#<%=TextBox1.ClientID %>').keyup(function(event) {
   var value = $(this).val();
   $('#<%=TextBox2.ClientID %>').text(value);
});

Dato che gestisci il problema sul lato client, non è necessario impostare AutoPostBack più vero.

Pagina .aspx

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <script type="text/javascript">
    function chngtxtbxval()
    {
      var t1=document.getElementById("TextBox1").value;
      var t2=document.getElementById("TextBox2");
      t2.value=t1;

    }
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    </div>
    </form>
    </body>
    </html>

Pagina CODEBEHIND

    protected void Page_Load(object sender, EventArgs e)
    {
    TextBox1.Attributes.Add("onkeyup", "chngtxtbxval();");
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top