protected void Page_Load(object sender, EventArgs e)
    {
if (!IsPostBack)
        {
        hgfont = 0;
        byfont = 4;
        macaufont = 4;
        }
    }protected void btn_en_Click(object sender, ImageClickEventArgs e)
    {
if (hgfont == 0 || hgfont == 1)
        {
            hgfont = 2;
            byfont = 4;
            macaufont = 4;
        }
    }
} protected void lbview_macau_Click(object sender, EventArgs e)
    {
        if (hgfont == 0 || byfont == 0)
        {
            macaufont = 0;
            hgfont = 4;
            byfont = 4;
        }
if (hgfont == 2 || byfont == 2)
        {
            macaufont = 2;
            hgfont = 4;
            byfont = 4;
        }
}这样加载后我单击btn_en_Click  变量hgfont = 2;  然后我再单击lbview_macau_Click  马上进入
if (hgfont == 0 || byfont == 0)
        {
            macaufont = 0;
            hgfont = 4;
            byfont = 4;
        }
这是为什么?为什么不是进入
if (hgfont == 2 || byfont == 2)
        {
            macaufont = 2;
            hgfont = 4;
            byfont = 4;
        }明明hgfont = 2;的,突然变成 0了 
 ?请指教!

解决方案 »

  1.   

    B/S结构的程序吧.呵呵,
    你需要将hgfont变成ViewState形式的变量.这样客户端和服务器的变量就统一了.否则每次都是变化的.
    所有B/S的窗体控件默认都是ViewState形式的protected int hgfont
            {
                get
                {
                    return (int)ViewState["hgfont"];
                }
                set
                {
                    ViewState["hgfont"]=value;
                }
            }
      

  2.   

    to :chsl918(Story Book)
    那全部都要把hgfont换成ViewState["hgfont"]吗?
      

  3.   

    在程序中使用变量不麻烦.只要和int一样使用就可以了.不过ViewState变量应当是一个窗体变量.
      

  4.   

    在窗体的相应程序中.定一个窗体变量.(就是写在)
    public class 你的窗体: System.Web.UI.Page
    {
    protected int hgfont
            {
                get
                {
                    return (int)ViewState["hgfont"];
                }
                set
                {
                    ViewState["hgfont"]=value;
                }
            }就可以了.在窗体中使用的时候并没有什么不一样.
    hgfont=0;
    int abc=hgfont;
    都是可以的.
      

  5.   

    private int hgfont;
    public int Hgfont
    {
        get{return hgfont;}
        set{hgfont=value;}
    }
    怎么放在我这段代码里使用呢?
      

  6.   

    protected int hgfont
            {
                get
                {
                    return (int)ViewState["hgfont"];
                }
                set
                {
                    ViewState["hgfont"]=value;
                }
            }
    定义需要变化,一定不能是private的.因为要在客户端保留.
    public int Hgfont
    {
        get{return hgfont;}
        set{hgfont=value;}
    }
    使用上没有任何区别所以不用更改
      

  7.   

    to:chsl918(Story Book) 
    那你说我那代码应该怎么改,解决问题立刻揭帖!
      

  8.   

    protected int hgfont
            {
                get
                {
                    return (int)ViewState["hgfont"];
                }
                set
                {
                    ViewState["hgfont"]=value;
                }
            }
    public int Hgfont
    {
        get{return hgfont;}
        set{hgfont=value;}
    }
      

  9.   

    protected int hgfont
            {
                get
                {
                    return (int)ViewState["hgfont"];
                }
                set
                {
                    ViewState["hgfont"]=value;
                }
            }protected void Page_Load(object sender, EventArgs e)
        {
    if (!IsPostBack)
            {
            hgfont = 0;
            byfont = 4;
            macaufont = 4;
            }
        }protected void btn_en_Click(object sender, ImageClickEventArgs e)
        {
    if (hgfont == 0 || hgfont == 1)
            {
                hgfont = 2;
                byfont = 4;
                macaufont = 4;
            }
        }
    } protected void lbview_macau_Click(object sender, EventArgs e)
        {
            if (hgfont == 0 || byfont == 0)
            {
                macaufont = 0;
                hgfont = 4;
                byfont = 4;
            }
    if (hgfont == 2 || byfont == 2)
            {
                macaufont = 2;
                hgfont = 4;
                byfont = 4;
            }
    }这样为什么还是不对?
      

  10.   

    你单击btn_en_Click  hgfont = 2; 然后再单击lbview_macau_Click
    只要能进入
     protected void lbview_macau_Click(object sender, EventArgs e)
        {
            if (hgfont == 0 || byfont == 0)
            {
                macaufont = 0;
                hgfont = 4;
                byfont = 4;
            }
    if (hgfont == 2 || byfont == 2)
            {
    只要到这里就算成功
            }
    }
      

  11.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Pages_Note1 : System.Web.UI.Page
    {
        //protected int hgfont;
        protected int hgfont
        {
            get
            {
                return (int)ViewState["hgfont"];
            }
            set
            {
                ViewState["hgfont"] = value;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                hgfont=1;
            }
        }
        protected void btn1_Click(object sender, EventArgs e)
        {
            hgfont = 1;
        }
        protected void btn2_Click(object sender, EventArgs e)
        {
            hgfont = 2;
        }
        protected void btnOut_Click(object sender, EventArgs e)
        {
            Response.Write("hgfont=" + hgfont);
        }
    }界面上有三个按钮,按钮1(btn1),按钮2(btn2),和输出按钮(btnOut).
      

  12.   

    http://61.49.24.147/baoming/pages/note1.aspx
    给你一个网址,是上面那个也没的输出结果. 
    2个小时有效
      

  13.   

    http://61.49.24.147/baoming/pages/note1.aspx
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Pages_Note1 : System.Web.UI.Page
    {
        //protected int hgfont;
        protected int hgfont
        {
            get
            {
                return (int)ViewState["hgfont"];
            }
            set
            {
                ViewState["hgfont"] = value;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                hgfont=0;
            }
        }
        protected void btn1_Click(object sender, EventArgs e)
        {
            hgfont = 1;
        }
        protected void btn2_Click(object sender, EventArgs e)
        {
            hgfont = 2;
        }
        protected void btnOut_Click(object sender, EventArgs e)
        {
            if (hgfont == 1)
            {
                Response.Write("你按了按钮1"); 
            }
            else if (hgfont == 2)
            {
                Response.Write("你按了按钮2"); 
            }
            else
            {
                Response.Write("你什么都没有按");
            }
        }
    }
    输出结果见第一行网址.