因为在点击button时候 先走的page load
但是 if (!IsPostBack) 没进去
所以没有进行到aa = "new";

解决方案 »

  1.   

    明白了,那我如何才能保持住变量aa的值呢?其实我是拿string变量aa做测试,我用的是datatable,我想在第一次page_load中创建表结构,再次执行时,只是getdata,可我调试时就发现了上面的问题,我想保存住datatable的结构,应该怎么做呢?
      

  2.   

    1.用static string aa;声明变量
    2.或者viewstate["aa"]=aa
     protected void Button1_Click(object sender, EventArgs e)
        {
          aa=viewstate["aa"].tostring();
    }
      

  3.   

    gridview中commandfield的select按钮也执行了page_load事件,我只想选择当前行,不让他执行page_load能实现吗?如何实现,因为我想保存住当前行的某个字段的value去执行参数传递工作。
      

  4.   

    用viewstate或者session或者hidden field保存
    以viewstate为例public string AA
    {
    get
    {
    object tmp = ViewState["_aa"];
    return (tmp==null) ? string.Empty : tmp.ToString();
    }
    set
    {
    ViewState["_aa"] = value;
    }
    }
      

  5.   

    1.用static string aa;声明变量
    2.或者viewstate["aa"]=aa
     protected void Button1_Click(object sender, EventArgs e)
        {
          aa=viewstate["aa"].tostring();
    }
    ===============================================================
    赞一个
      

  6.   

    谢谢大家的热心答复,我想我应该换个思路实现我想做的事情。但明白了postback是怎么回事,和viewstate的应用
      

  7.   

    Http访问是无状态的,你提交页面就相当于一个新的请求,页面不会管你上一个页面中的值是什么。
    所以你要想办法把这些值保持下来,当然手段有很多种了。
      

  8.   

    if (!IsPostBack)验证页面是否初次加载~~~~~
      

  9.   

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DropDownList1.Items.Add("设备编号");
                DropDownList1.Items.Add("助记符");
                DropDownList1.Text = "设备编号";
                creatEquaccountTableStyle();
                getEquaccount("");
            }
            aa = "new";
        }