0

我在更新面板中有两个文本框,Text1 和 Text2。代码在这里:

 <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>

我在textchangedText1的事件上写了这段代码:

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

现在的问题是,当我在 Text1 中输入文本,然后按 Enter 时,text2 的文本等于 text1 的文本,但我想在按 text1 中的输入之前执行此操作。我的意思是当我按下 text1 时,text2 的文本应该等于 text2。

4

3 回答 3

3

你可以使用 JQuery 来做你想做的事。

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

由于您在客户端处理问题,因此您不再需要设置AutoPostBack为 True 。

于 2012-02-20T14:14:29.403 回答
2

如果要处理 keydown 事件,则需要 javascript:

<asp:TextBox ID="TextBox1" onkeydown="document.getElementById('TextBox2').value=this.value" runat="server" AutoPostBack="false"></asp:TextBox>
于 2012-02-20T14:12:41.893 回答
0

.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>

代码隐藏页面

    protected void Page_Load(object sender, EventArgs e)
    {
    TextBox1.Attributes.Add("onkeyup", "chngtxtbxval();");
    }
于 2013-02-01T10:33:44.823 回答