2011-12-15 2 views
1

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

Вот мой кодирующая

<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() в то время как событие postback, но позиционирование курсора в текстовом поле начинается с первого символа :(

+1

Мне интересно, почему вы хотели бы, чтобы на обратную передачу TextChanged. Вы можете использовать javascript/jQuery для обновления ярлыка без кругового путешествия. –

+0

Фактически я хочу сделать для мгновенного поиска. Когда пользователь вводит текстовое поле поиска, тогда также будет обновляться gridview. Я не знаю, как использовать Jquery для повторной привязки моего gridview :( – user998405

+0

Я бы потратил немного времени на jQuery. Это того стоит. –

ответ

0

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

http://parentnode.org/javascript/working-with-the-cursor-position/
jQuery Set Cursor Position in Text Area
Set keyboard caret position in html textbox

сказал, что все, что я буду рекомендовать вам реструктурировать свое решение. Вместо того, чтобы частично или частично обновлять панель обновления после изменения текста, вы должны использовать службы сценариев (или методы страницы), чтобы сделать запрос 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

Я бы очень рекомендовал проверить некоторые доступные плагины jquery. поиск google jquery autocomplete вернет довольно большое количество опций. Вот вам, чтобы вы начали.

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

Смежные вопросы