检查asp:TextBox是否关注Asp.net4(C#)

时间:2014-05-18 08:33:09

标签: c# asp.net textbox focus textarea

我正在构建像Facebook一样的聊天模块。 这是我的default.aspx文件中的一个小字段集:

<form>
    <`asp:TextBox` ID="InstantMessageContent" runat="server" onkeypress="return EnterEvent(event)" >
    </asp:TextBox>
</form>

在我的C#代码后面文件中,我想检查文本框是否有焦点来读取过去的用户消息。 我尝试过这样的事情,但VS2012强调了这一点&#34; 。专注&#34;如未知:

if (InstantMessageContent.Focused==true)
  {
      changeUnreadStatusMessageToRead(Person1, Person2);
  }

有人可以帮我解决这个问题。我搜索了很多,但我找到的所有答案都不适合我。

1 个答案:

答案 0 :(得分:0)

您无法获取服务器端的属性来识别文本框是否已被聚焦。而是使用客户端脚本。在单击或焦点事件上编写一个触发服务器端方法的Java脚本函数。为此,您必须将脚本管理器添加到您的页面。还用web方法装饰你的方法。

ASPX: -

<form id="form1" runat="server" name="form1">
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"/>
         <div>
           <asp:TextBox ID="txtTest" runat="server"  onclick="javascript:PageMethods.ChangeUnreadStatusMessageToRead()"></asp:TextBox>
          </div>
  </form>

CS: -

[System.Web.Services.WebMethod]
public static void ChangeUnreadStatusMessageToRead()
{

}