0

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

文本框的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# 文件中。

4

3 回答 3

1

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

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

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

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};");
于 2012-11-10T12:46:15.077 回答
1

您需要将其放在自己的形式中并使用 javascript,因为它将位于具有其他控件的页面中。您不想在他们每次输入内容时都“提交”页面。

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

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

于 2012-11-10T12:58:00.770 回答
0

您在这里可能面临的问题是事件将在服务器端处理(在 post 之后)。按下回车键后,您可能仍需要 javascript 来发布帖子。

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

于 2012-11-10T12:45:30.833 回答