Автозаполнение текстового поля в ASP.NET в зависимости от текста, набранного в другом текстовом поле - PullRequest
2 голосов
/ 10 января 2012

как заполнить текстовое поле в asp.net, когда я набираю другой текст ... изменения в одном текстовом поле будут влиять на другое текстовое поле автоматически ... и без обновления моей страницы.

Ответы [ 4 ]

2 голосов
/ 10 января 2012

Хорошо, попробуйте это.Вам понадобится AJAX Control Toolkit.Прочтите статью Установка AJAX Control Toolkit 4 в 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 голосов
/ 10 января 2012

Нет необходимости в AJAX. JQuery достаточно. Код сделает это

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

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

});

Предполагая

  1. text1 идентификатор поля ввода.
  2. text2 текстовое поле, в которое текст копируется

в .Net вам придется использовать идентификатор клиента, чтобы получить правильный идентификатор, чтобы он мог выглядеть следующим образом

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

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

});

О, и заверните это в $(document).ready в соответствии со стандартом. И, конечно же, вам нужно включить библиотеку JQuery на свою страницу.

Нет отправки назад или обновления страницы вообще. Это ваше самое легкое решение, и его легко реализовать.

1 голос
/ 10 января 2012

Вам нужно будет использовать Javascript для достижения этой цели. Код ASP.Net выполняется на стороне сервера, а это значит, что он не может повлиять на страницу без обратной передачи. Читайте о событии OnTextChanged и о том, как подключиться к нему с помощью JavaScript. Существует библиотека javascript с именем jQuery , которая делает все проще, хотя в этом нет особой необходимости.

0 голосов
/ 10 января 2012

Используйте JQuery.Вам может потребоваться сделать AJAX-вызов на сервер, если вы используете источник данных, такой как база данных, для автоматического заполнения этого поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...