Поддерживать курсор текстового поля после обратной передачи - PullRequest
1 голос
/ 15 декабря 2011

Я хочу изменить значение метки так же, как текстовое поле при вводе символа.так что здесь есть вопрос? Как я могу сохранить курсор текстового поля после обратной передачи? Например, я набираю 'ab'.Положение курсора текстового поля останется на последнем символе 'b'

Вот мое кодирование

<script language="javascript" type="text/javascript">


 function RefreshUpdatePanel() {
     __doPostBack('<%= TextBox1.ClientID %>', '');
 };


</script>
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
<ContentTemplate>

    <br />
    <br />
<asp:TextBox ID="TextBox1" runat="server" onkeyup="RefreshUpdatePanel();" 
            ontextchanged="TextBox1_TextChanged"></asp:TextBox>

     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
         <ContentTemplate>
             <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
         </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="TextBox1" />
    </Triggers>
    </asp:UpdatePanel>

    </ContentTemplate>
</asp:UpdatePanel>

мой код конца

 protected void Page_Load(object sender, EventArgs e)
    {
        //--If post back is txtSearach , then do search function--
        if (Page.Request.Form["__EVENTTARGET"] == TextBox1.ClientID)
        {
            this.Label1.Text = this.TextBox1.Text;

        }

    }

Я также пытаюсьположить textbox1.focus () во время события обратной передачи, но положение курсора текстового поля начнется с первого символа: (

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Что вам нужно сделать, это обработать onsubmit событие формы (или документа), а затем сохранить текущую позицию каретки в скрытом поле.На сервере прочитайте значение скрытого поля и затем сгенерируйте сценарий запуска, чтобы установить позицию каретки.Сложные биты получают и устанавливают позицию каретки - ниже ссылки помогут вам в этом:

http://parentnode.org/javascript/working-with-the-cursor-position/
jQuery Установить положение курсора в текстовой области
Установитьрасположение курсора клавиатуры в текстовом поле html

Сказав все это, я порекомендую вам изменить структуру вашего решения.Вместо частичного постбэка на панели обновления при изменении текста, вы должны использовать скриптовые сервисы (или методы страницы), чтобы сделать ajax-вызов сервером для получения результатов поиска.Это было бы более просто, элегантно и эффективно.Ниже ссылки должны помочь вам начать:

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/
http://www.codeproject.com/KB/aspnet/jQuery_To_WCF.aspx
http://msdn.microsoft.com/en-us/magazine/cc163499.aspx

0 голосов
/ 15 декабря 2011

Я настоятельно рекомендую проверить некоторые из доступных плагинов jquery. Быстрый поиск в Google jquery autocomplete вернет довольно большое количество параметров. Вот один из них, с которого можно начать.

http://jqueryui.com/demos/autocomplete/

...