2014-02-25 63 views
0

所以我有這個TextBox的UpdatePanel。每當我點擊它,它就會聚焦,然後在不到一秒鐘的時間內失去焦點。因此,似乎無法在TextBox中寫入任何內容。我該如何解決這個問題?TextBox神祕地失去焦點

<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server"> 
<asp:UpdatePanel runat="server" ChildrenAsTriggers="true"> 
    <ContentTemplate> 
     <asp:Timer runat="server" ID="updateTimer" Interval="1000" OnTick="updateTimer_Tick"></asp:Timer> 
     <div> 
      <asp:Panel runat="server" BorderColor="Black" BorderStyle="Double" BorderWidth="4" ScrollBars="Vertical"> 
       <asp:Literal runat="server" ID="chatLabel"></asp:Literal> 
      </asp:Panel>   
      <asp:TextBox runat="server" ID="chatTextBox" ClientIDMode="Static" BorderStyle="Double" BorderColor="Black" BorderWidth="4" AutoPostBack="true" OnKeyPress="return EnterEvent(event)"></asp:TextBox> 
      <asp:Button runat="server" ID="chatSubmit" OnClick="chatSubmit_Click" Text="Send"/> 
     </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 
<script> 
    function EnterEvent(e) 
    { 
     if (e.keyCode == 13) 
     { 
      __doPostBack('<%= chatSubmit.UniqueID %>', ""); 
     } 
    } 
</script> 
</asp:Content> 

回答

0

它將這樣做。在按下按鍵時,您會觸發異步回傳,這就是導致您失去焦點的原因。你將不得不使用javascript,並使用

Sys.Application.add_endRequest(function(sender, e) { }) 

要聽取請求的結束並把焦點放回。

我明白你在做什麼,我強烈推薦使用Web服務或Signalr來做你想做的事情。你不會獲得你正在尋找的能力或表現。更新面板在回發時將焦點移開,因此用戶不能繼續打字。更新面板在某種程度上受到限制。