【问题标题】:Auto Fill Textbox in ASP.NET depending on the text typed in another textbox根据在另一个文本框中键入的文本,在 ASP.NET 中自动填充文本框
【发布时间】:2012-02-06 21:00:59
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过使用OnTextChanged 事件?你试过任何东西吗?
  • 你在这个项目上使用 jQuery 吗?
  • 你应该使用 JavaScript。最简单的方法 - 按照克劳迪奥的建议使用 jQueyr。这样就3行代码左右。
  • 你会考虑使用 AJAX 吗?正如之前其他评论者所建议的,jQuery 也是一个非常不错的选择。

标签: c# asp.net autocomplete textbox


【解决方案1】:

不需要 AJAX。 jQuery 就足够了。代码会做的

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

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

});

假设

  1. text1 输入框的 id。
  2. text2 文本被复制到的文本框

在 .Net 中,您必须使用客户端 ID 来获取正确的 ID,因此它可能看起来像这样

$('<%=text1.ClientID%>').bind('keyup', function(){

   $('<%=text2.ClientID%>').val($('#text1').val());

});

哦,按照标准将其包装在 $(document).ready 中。当然,您需要将 JQuery 库包含到您的页面中。

根本没有回发或页面刷新。这是您最轻的解决方案并且易于实施。

【讨论】:

    【解决方案2】:

    您需要使用 Javascript 来完成此操作。 ASP.Net 代码在服务器端运行,这意味着如果不首先发生回发,它就不会影响页面。阅读OnTextChanged 事件以及如何使用 javascript 连接它。有一个名为 jQuery 的 JavaScript 库,它使一切变得更容易,尽管它不是绝对必要的。

    【讨论】:

      【解决方案3】:

      好的,试试这个。您将需要 AJAX 控制工具包。所以请阅读文章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
      }
      

      我希望这会有所帮助。

      【讨论】:

        【解决方案4】:

        使用 JQuery。如果您依赖数据库等数据源来自动填充此字段,则可能需要对服务器进行 AJAX 调用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-04
          • 1970-01-01
          • 2017-07-23
          • 1970-01-01
          • 2013-03-20
          • 2011-03-14
          • 1970-01-01
          相关资源
          最近更新 更多