我正在构建像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);
}
有人可以帮我解决这个问题。我搜索了很多,但我找到的所有答案都不适合我。
答案 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()
{
}