<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!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:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    
    </div>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </form>
</body>
</html>下面是C#代码
public partial class Default2 : System.Web.UI.Page
{
            bool flag = true;
    protected void Page_Load(object sender, EventArgs e)
    {    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (flag)
        {
            Label1.Visible = false;
            flag = false;
        }
        else
        {
            Label1.Visible = true;
            flag = true;
        }    }
}
看了半天也看不出来什么问题,现在点击隐藏后,再点击怎么也不显示出来
到底是什么问题撒

解决方案 »

  1.   


    在ASP。net 的页面中是不能随便定义一个 变量的 
    因为页面每次的刷新 都会使你定义的变量回复成初始化的值 
    我bool v = true就一直是true了
    可以用viewstate来记录
      

  2.   

    protected void Button1_Click(object sender, EventArgs e)
        {
            if (Label1.Visible == false)
            {
                Label1.Visible = true;
               
            }
            else
            {
                Label1.Visible = false;          
            }    }
      

  3.   

    private static bool flag = true;
      

  4.   

    点击之后被重新赋初值了,要想保存状态,可用viewstate,
      

  5.   

    我建议你的代码改成这样:
    public partial class Default2 : System.Web.UI.Page
    {
                bool flag = true;
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {
                Label1.Visible = !flag;
                flag =  !flag ;
              
        }
    }
      

  6.   

    flag多余。原因应该是1楼说的。这样就行了:
    protected void Button1_Click(object sender, EventArgs e)
    {
        Label1.Visible = !Label1.Visible;
    }