无法在单击按钮时 Asp.net 递增 Page 变量的值
本文关键字:Page 递增 变量 net Asp 单击 按钮 | 更新日期: 2023-09-27 18:32:43
>每当我反复单击Button1时,Literal1中的文本都不会递增。你能告诉我原因吗?
预期:每次单击按钮后,值以文本字段增量显示。
当前结果:值始终显示 1。
public partial class d1 : System.Web.UI.Page
{
int c;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
c = 1;
Literal1.Text = c.ToString();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
c=c+1;
Literal1.Text = c.ToString();
}
}
原因是
c
是该类上的实例变量。每次回发到服务器都会创建类的新实例。因此,c
被初始化为在每个回发时0
。如果希望c
保留在该类的单个实例之外,则需要将其存储在某个位置。会话、应用程序、数据库等 (具体而言,取决于在什么情况下c
的价值应该持续存在。 我猜这只是测试代码,以了解功能,因此您可以尝试上述所有方法,看看它们有何不同。
有关这方面的更多信息,您需要阅读 ASP.NET 页面生命周期。
从本质上讲,"全局"并不能非常准确地描述c
变量。 它的作用域非常局限于该类,更具体地说,仅限于该类的任何一个实例。