当我输入另一个文本时,如何在asp.net中填充文本框 ..一个文本框中的更改将影响另一个文本框自动..并且不刷新我的页面。
答案 0 :(得分:2)
不需要AJAX。 JQuery就足够了。代码将会这样做
$('#text1').bind('keyup', function(){
$('#text2').val($('#text1').val());
});
假设
$('<%=text1.ClientID%>').bind('keyup', function(){
$('<%=text2.ClientID%>').val($('#text1').val());
});
哦,按照标准将其包裹在$(document).ready
中。您需要将JQuery库包含在您的页面中。
根本没有回帖或页面刷新。这是您最轻的解决方案,易于实施。
答案 1 :(得分:2)
好的,试试吧。您将需要AJAX Control Toolkit。请阅读文章Installing AJAX Control Toolkit 4 in Visual Studio 2010,了解如何在Visual Studio中安装它。
然后,您需要将ScriptManager添加到ASPX页面。您需要添加以下代码:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
您需要做的是将UpdatePanel添加到您的页面。在此更新面板中,您需要放置文本框。这意味着只有更新面板内的控件才会刷新,而不是整个页面。为此,请添加以下代码:
<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>
触发器告诉您的页面表单上的哪个控件需要启动回发。现在在.cs文件中,您需要为Textbox2 TextChanged事件添加事件处理程序。添加以下代码:
protected void Textbox2_TextChanged(object sender, EventArgs e)
{
// Set the text of textbox1 = textbox2
}
我希望这会有所帮助。
答案 2 :(得分:1)
您需要使用Javascript来完成此操作。 ASP.Net代码在服务器端运行,这意味着它不会影响页面而不会首先发生回发。阅读OnTextChanged
事件以及如何使用javascript挂钩它。有一个名为jQuery的javascript库,它使一切变得更容易,但并不是绝对必要的。
答案 3 :(得分:0)
使用JQuery。如果依靠数据源(如数据库)来自动填充此字段,则可能需要对服务器进行AJAX调用。