public partial class _22222 : System.Web.UI.Page
{
    HttpCookie CK = new HttpCookie("CK");    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["CK"] != null)
        {
            Label1.Text = Request.Cookies["CK"].Value;
        }
    }
    protected void Btn_SetCookie1_Click(object sender, EventArgs e)
    {
        CK.Value = "1";        Response.Cookies.Add(CK);        Response.Cookies.Set(CK);        //Response.Redirect("22222.aspx");
    }
    protected void Btn_SetCookie2_Click(object sender, EventArgs e)
    {
        CK.Value = "2";        Response.Cookies.Add(CK);        Response.Cookies.Set(CK);        //Response.Redirect("22222.aspx");
    }
}
以上代码 必须  按2次按钮 才能把label的值刷新显示正确  如果只按1下 就还是原来的值或者必须执行 Response.Redirect 才能让Label里的值 显示对....请达人指点

解决方案 »

  1.   

    protected void Page_Load(object sender, EventArgs e) 
        { 
           if(!this.IsPostBack)
    {

            if (Request.Cookies["CK"] != null) 
            { 
                Label1.Text = Request.Cookies["CK"].Value; 
            } 
    }
        } 
    试试看.
      

  2.   

    ·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL) 
    ·详情请访问:http://www.515dns.com 
      

  3.   

    以上逻辑错误, if(!this.IsPostBack) 是判断如果是第一次加载页面为true;它不处理客户触发服务器控件回传的代码。楼主说为什么要点两次才执行刷新lable,因为执行顺序是现pageload,后Button。所以直接在Btn_SetCookie1_Click刷新lable即可,以上是我不成熟的看法,有什么错误还请原谅!
      

  4.   

    你点击按钮后只是简单的给cookie赋值,并不会引起页面回发,难道你查看lable的变化是靠手工刷新页面来查看的?把Label1.Text = Request.Cookies["CK"].Value; 
    放到按钮事件中.
      

  5.   

    Request  和 Response 的原因 Page_Load() 是响应请求时执行的  这是的请求(request)中的cookie是button事件之前的 0.第一次请求页面
    1.Page_Load() 执行,这时的request中cookie并未赋值2.点击button ---新的(第二次)请求 ,request中cookie仍然未赋值3.执行Btn_SetCookie1_Click()为cookie赋值   ----第一次赋值, 但这个赋值不会改变request,4.再次Page_Load() 执行,第二次请求的响应,但这时的request中cookie并未赋值,因为第3步没有改变request5.再点button 第三次请求, 这时候 request中的cookie就有值了,--第3步赋的值...
      

  6.   

    代码放在Page_Load中,只能重新激发页面才能看到.