提交文本框的值而不重新加载页面

本文关键字:加载 新加载 文本 提交 | 更新日期: 2023-09-27 17:56:04

我正在开发一款基于 ASP.NET 的TicTacToe游戏。我遇到的问题是:游戏在两个用户之间进行。当第一个玩家在文本框中键入"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();
        }
        ...

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

提交文本框的值而不重新加载页面

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

以下是 jQuery 中 AJAX 的文档:

  • http://api.jquery.com/jQuery.ajax/

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

  • http://www.asp.net/ajax/ajaxcontroltoolkit/samples/

您正在询问部分页面更新。

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

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

查看 AJAX。这将要求客户端脚本提交和检测更新,而无需提交或更新整个页面。

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