输入TextBox的键事件

时间:2012-11-10 12:35:06

标签: c# asp.net c#-4.0 keypress

我是asp.net的新手。在这里,我试图创建一个聊天应用程序。在我的项目中有一个标签和一个TextBox。每当用户在TextBox中输入任何内容并按enter时,文本将显示在Label中。我尝试了以下代码:

TextBox的

OnEnterKeyPress (.aspx.cs文件)

        HttpRequest request = base.Request;           
        Ping p = new Ping();
        PingReply r;
        String s = request.UserHostAddress;  //using own IP address for understanding purpose.
        r = p.Send(s);
        Response.Buffer = false;
        if (r.Status == IPStatus.Success)
        {
            Label1.Text = TextBox1.Text;
        }

我不知道如何保持输入事件。 (TextBox属性中没有事件,因为它在C#中)

在询问此处之前,我检查了许多链接,例如Link1 Link2 Link3,但没有用。我可以使用简单的Javascript,但主要代码是在C#文件中。

3 个答案:

答案 0 :(得分:1)

如果表单中只有一个按钮要启用“输入”,则可以将其设置为默认值

protected void Page_Load(object sender, EventArgs e)
{
    this.Form.DefaultButton = myTextBox.UniqueID;
}

对于任何按钮,您都需要使用Javascript。您仍然可以使用C#添加属性。 (来自here

myTextBox.Attributes.Add("onkeydown", "if(event.which || event.keyCode)
                  {if ((event.which == 13) || (event.keyCode == 13)) 
                      {document.getElementById('"+Button1.UniqueID+"').click();
                                         return false;}} else {return true};");

答案 1 :(得分:1)

你需要把它放在自己的形式并使用javascript,因为它将在一个包含其他控件的页面中。每次输入内容时,您都不希望“提交”页面。

<form action="javascript:chat()">
put label and textbox here
</form>

这将使“输入”对文本框起作用。对于聊天功能,为了使其更具互动性,您可以使用http://signalr.net/

实施

答案 2 :(得分:0)

您可能遇到的问题是服务器端将处理事件(发布后)。当按下回车键时,你可能仍然需要一个javascript来发帖..

我也不确定OnEnterKeyPressed是否是一个有效的事件。