TextBox神秘失去焦点

时间:2014-02-25 12:05:20

标签: asp.net ajax

所以我有这个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>

1 个答案:

答案 0 :(得分:0)

它会这样做。在按键时,您会触发异步回发,这就是导致您失去焦点的原因。你必须使用javascript,并使用

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

听取请求的结束并重新关注焦点。

我看到你要做的事情,我强烈建议你使用网络服务或信号器来做你想做的事情。你不会得到你想要的能力或表现。更新面板在回发时会将焦点移开,因此用户不能只是继续输入。更新面板在某种程度上受到限制。