ASP.NET中的自动填充文本框取决于在另一个文本框中键入的文本

时间:2012-01-10 12:43:27

标签: c# asp.net autocomplete textbox

当我输入另一个文本时,如何在asp.net中填充文本框 ..一个文本框中的更改将影响另一个文本框自动..并且不刷新我的页面。

4 个答案:

答案 0 :(得分:2)

不需要AJAX。 JQuery就足够了。代码将会这样做

$('#text1').bind('keyup', function(){

   $('#text2').val($('#text1').val());

});

假设

  1. text1 id of box writing into。
  2. 将文本复制到
  3. 的text2文本框 在.Net中,您必须使用客户端ID来获取正确的ID,因此它可能看起来像这样

    $('<%=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调用。