一个非常简单的程序:两个label,一个button.按button会加1。 我已经设置EnableViewState="false" 而且用trace 查看control tree 下hidden 的大小一个为20,一个为0。但每个label的text显示的值都会加1。真的不明白。请大家指点一下!
代码如下:是在webSite 下运行
<%@ Page Language="C#" Trace="true"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">        protected void btnAdd_Click(object sender, EventArgs e)    {        lblCounter.Text = (Int32.Parse(lblCounter.Text) + 1).ToString();
        lable2.Text = (Int32.Parse(lblCounter.Text) + 1).ToString();    }</script><html xmlns="http://www.w3.org/1999/xhtml" ><head id="Head1" runat="server">    <title>Show View State</title></head><body>    <form id="form1" runat="server">    <div>        <asp:Button        id="btnAdd"        Text="Add"        OnClick="btnAdd_Click"        Runat="server" />    <asp:Label ID="lable2" EnableViewState="false" runat="server" ></asp:Label>    <asp:Label        id="lblCounter"        Text="0"        Runat="server" />        </div>    </form></body></html>

解决方案 »

  1.   

    晕,你设置了 lable2.EnableViewState="false"然后,每次都取 lblCounter ....
      

  2.   

    想把页面上所有控件的都禁止,把页面上的EnableViewState设置就可以!
      

  3.   

    楼主的问题是想干什么啊!你要禁用页面缓存页,用page.EnableViewStates设置
      

  4.   

    protected void btnAdd_Click(object sender, EventArgs e)    {        lblCounter.Text = (Int32.Parse(lable2   《-------id至少得换成这样吧  .Text)  + 1).ToString();
            lable2.Text = (Int32.Parse(lable2    《--------同上     .Text)+ 1).ToString();    }
      

  5.   

    或者像前面几位老大说的那样直接把整个Page的EnableViewState设置为false阿
      

  6.   

    看来是我没有说清楚,我是想测试一下EnableViewState属性。所以我将页面上一个lable的EnableViewState属性设置为false,另一个没有设置默认为true.这样设置后效果应该是设置了EnableViewState=false的lable每个都加载值。但实际效果是两个table都缓存了值。但我用trace 查看又只有一个lable有缓存。真是一个很诡异的问题。答gimse7en()。script里我是要每个lable在原来值的基础上加1。所以各个lable用自己的id
      

  7.   

    帅哥。。
    <asp:Label         id="lblCounter"        Text="0"        Runat="server" />你这个控件没用 EnableViewState="false" 啊 你+1操作用的是它的值 它没禁用当然会增加了
      

  8.   

    既然你测试 那你为什么
    lblCounter.Text = (Int32.Parse(lblCounter.Text) + 1).ToString();
    lable2.Text = (Int32.Parse(lblCounter.Text) + 1).ToString();两个都取lblCounter的值啊 我晕 应该为
    lblCounter.Text = (Int32.Parse(lblCounter.Text) + 1).ToString();
    lable2.Text = (Int32.Parse(lable2.Text) + 1).ToString();
      

  9.   

    lblCounter.Text = (Int32.Parse(lblCounter.Text) + 1).ToString();
            lable2.Text = (Int32.Parse(lblCounter.Text) + 1).ToString();
    页面的Lable控件你都赋值了啊
      

  10.   

    windstore(雪海飄香) 说得对啊,原来是我太粗心了,晕! 结帐!