我在更新面板中有两个文本框,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>
我已经在Text1的textchanged
事件上编写了这段代码:
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。
答案 0 :(得分:3)
您可以使用JQuery来执行您想要的操作。
$('#<%=TextBox1.ClientID %>').keyup(function(event) {
var value = $(this).val();
$('#<%=TextBox2.ClientID %>').text(value);
});
由于您在客户端处理问题,因此无需再将AutoPostBack
设置为True。
答案 1 :(得分:2)
如果你想处理keydown事件,你需要javascript:
<asp:TextBox ID="TextBox1" onkeydown="document.getElementById('TextBox2').value=this.value" runat="server" AutoPostBack="false"></asp:TextBox>
答案 2 :(得分:0)
.aspx page
<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();");
}