页面回送之后页面变量被重置了,请问怎么办

gunziyang 2013-01-28 08:12:32
页面由两个Label和两个Button,还有一个页面类的private变量a。在点击Button1时,Label显示1,且给a赋1。在点击Button2时,Label2显示a的内容。

请问为什么此时a的内容为空,而Label1.Text内容依然为1?如果要在回送之后依然保持a的变量值,应该怎么办?
...全文
306 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyl8781697 2013-01-28
  • 打赏
  • 举报
回复
引用 11 楼 gunziyang 的回复:
能解释下为什么a的内容为空,而Label1.Text内容依然为1吗?
控件label1的值使用viewstate来维护的 所以不会变
yyl8781697 2013-01-28
  • 打赏
  • 举报
回复
引用 楼主 gunziyang 的回复:
页面由两个Label和两个Button,还有一个页面类的private变量a。在点击Button1时,Label显示1,且给a赋1。在点击Button2时,Label2显示a的内容。 请问为什么此时a的内容为空,而Label1.Text内容依然为1?如果要在回送之后依然保持a的变量值,应该怎么办? b……
因为你再点击button2的时候 又把变量a初始化了一遍 你可以把变量a改为静态变量 priavte static a="";
gunziyang 2013-01-28
  • 打赏
  • 举报
回复
能解释下为什么a的内容为空,而Label1.Text内容依然为1吗?
tao526598085 2013-01-28
  • 打赏
  • 举报
回复
private static string a =""; 要想保持a的内容,要么用Session,要么a定义为静态.
gunziyang 2013-01-28
  • 打赏
  • 举报
回复
引用 8 楼 gavinl_ 的回复:
private string a =""; 这样应该就可以了
这是什么意思
csdn_gavin 2013-01-28
  • 打赏
  • 举报
回复
private string a =""; 这样应该就可以了
翔教授 2013-01-28
  • 打赏
  • 举报
回复
Session中也可以存储类对象哦
gunziyang 2013-01-28
  • 打赏
  • 举报
回复
引用 5 楼 hjywyj 的回复:
引用 4 楼 gunziyang 的回复:引用 2 楼 bdmh 的回复:用session[参数名]保持 如果要存储的是一个类对象,而不是一个值呢? 谁告诉你session只能存储值的?
难道不是只能存string?
  • 打赏
  • 举报
回复
引用 4 楼 gunziyang 的回复:
引用 2 楼 bdmh 的回复:用session[参数名]保持 如果要存储的是一个类对象,而不是一个值呢?
谁告诉你session只能存储值的?
gunziyang 2013-01-28
  • 打赏
  • 举报
回复
引用 2 楼 bdmh 的回复:
用session[参数名]保持
如果要存储的是一个类对象,而不是一个值呢?
gunziyang 2013-01-28
  • 打赏
  • 举报
回复
引用 1 楼 xiaojie_cp 的回复:
把代码贴上来
多谢提醒,以下是代码: Defualt.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="PostBackText._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />
    
    </div>
    </form>
</body>
</html>

Default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace PostBackText
{
    public partial class _Default : System.Web.UI.Page
    {
        private string a;
        
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = "1";
            a = "1";
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            Label2.Text = a;
        }
    }
}

bdmh 2013-01-28
  • 打赏
  • 举报
回复
用session[参数名]保持
lovebaby 2013-01-28
  • 打赏
  • 举报
回复
把代码贴上来
  • 打赏
  • 举报
回复
加上POSTBACK 判断呢
hengren4 2013-01-28
  • 打赏
  • 举报
回复





 protected void Button1_Click(object sender, EventArgs e)     
{ 
ViewState["_a"]= (ViewState["_a"]==null?1:int.Pase(ViewState["_a"].ToString())) +1;      
Label1.Text = ViewState["_a"].ToString();         
} 





lovebaby 2013-01-28
  • 打赏
  • 举报
回复
变量被重置是因为你点击button的时候回发,重新执行一遍程序,变量又回到了初始值。 Label1的内容是靠ViewState来维护的,回发之后程序把ViewState中存储的控件值又恢复到控件了。 把Label1的ViewState禁用,你试试还会是1吗?

    private string a;
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.EnableViewState = false;
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Text = "1";
        a = "1";
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Label2.Text = a;
    }
夜色镇歌 2013-01-28
  • 打赏
  • 举报
回复
存session或者静态的字段

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧