提交文本框的值而不重新加载页面
本文关键字:加载 新加载 文本 提交 | 更新日期: 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书。