1

我正在开发基于 ASP.NET 的井字游戏。我遇到的问题是:游戏在两个用户之间进行。当第一个在 TextBox 中键入“x”时,我希望在第二个玩家的计算机上显示“x”而不重新加载页面。我不知道某些代码是否会有所帮助,但这是我不重新加载的方式(用户必须手动重新加载页面......愚蠢):

protected void TopLeft_TextChanged(object sender, EventArgs e)
    {
        Application.Lock();
        GameBoard gameBoard = new GameBoard();
        gameBoard.board[0, 0] = char.Parse(this.TopLeft.Text);
        Application["TopLeft"] = gameBoard.board[0, 0];
        Application.UnLock();
    }

然后,在页面预渲染:

protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        Application.Lock();
        if(Application["TopLeft"] != "0")
        {
            this.TopLeft.Text = Application["TopLeft"].ToString();
        }
        ...

等等......我会非常感谢任何可以提供帮助的人!

4

3 回答 3

3

您将需要使用AJAX来执行此操作。我建议查看 jQuery 提供的一些 AJAX 功能,但您也可以查看 Microsoft 的 AJAX Toolkit。

这是 jQuery 中 AJAX 的文档:

我觉得这比微软提供的开箱即用“轻”得多。您可以在此处找到有关 Microsoft AJAX 工具包的更多信息:

于 2011-05-10T15:27:06.890 回答
2

您在询问Partial Page Update

首先,您需要将客户端TextBox或需要重新加载的其他控件放置在UpdatePanel中。

然后,您需要在需要时调用UpdatePanel.Update来更新这些控件。

于 2011-05-10T15:33:15.213 回答
1

查看 AJAX。这将要求客户端脚本在不提交或更新整个页面的情况下提交和检测更新。

但是请注意,这是一个相当高级的主题,而不仅仅是您可以添加的一小段代码。我会推荐一本好的 AJAX/JavaScript/jQuery 书籍。

于 2011-05-10T15:27:26.010 回答