public partial class chuhao : System.Web.UI.Page
{
    public List<ChuHao> chao = null;
    ShanD shanD = new ShanD();
    protected void Page_Load(object sender, EventArgs e)
    {
ClientScript.RegisterOnSubmitStatement(typeof(string), "onsubmit", "return pageValid();");
//chao = shanD.FindChuHao(30);
if(!IsPostBack)
{
chao = shanD.FindChuHao(30);
endNum.Text = chao[0].num;
statNum.Text = chao[29].num;
}
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        chao = shanD.FindChuHao(50);
    }
    protected void LinkButton2_Click(object sender, EventArgs e)
    {
        chao = shanD.FindChuHao(80);
    }
    protected void LinkButton4_Click(object sender, EventArgs e)
    {
        chao.Reverse();
    }
}
LinkButton4_Click事件为把chao倒序排列,为什么chao会为空呢

解决方案 »

  1.   

    你也知道它回发了,既然回发了,if(!IsPostBack)里的代码就不会再执行,chao当然是空了
    把if(!IsPostBack)去掉吧
      

  2.   

    public List<ChuHao> chao = null;
    这个全局变量,赋值后整个类都可以使用三
      

  3.   

    去了Ispostback,每次得到的数量都只有30条了
      

  4.   

    你在Page_Load里传入的是30当然得到就是30条了……
    劝你先了解一下asp.net的生命周期吧
      

  5.   

    每次回传都会执行,当然只有30条了
    定义多个变量实现或
    定义属性通过viewState转化
    protectted  List<ChuHao> chao 
    {
    get
    {
     
    }
    set
    {
    }
    }
      

  6.   

    可以把结果放在session里临时保存一下.
      

  7.   

    page_load里默认是取30条数据,
    LinkButton1_Click,是取50条数据,
    LinkButton2_Click,取80条数据,
    数据取出后都是存入chao
    LinkButton4_Click的作用是反转chao,我知道服务器控件执行前都会执行page_load里的代码,所以放在了ispostback里面,关键问题就是LinkButton4_Click在执行反转的时候,不知道chao里有多少数据
      

  8.   

    不加载 IsPostBack在Page_Load 里的代码重新执行
    这就和刚打开 chuhao 的页面的显示的内容基本一样了
      

  9.   

    我知道你的意图了,你可以把你这个chao放到ViewState里,但必须保证你的ChuHao类是可序列化的:public partial class chuhao : System.Web.UI.Page
    {
        public List<ChuHao> chao
        {
            get
            {
                 object o = ViewState["chao"];
                 return o == null ? new List<ChuHao>() : o as List<ChuHao>;
            }
            set
            {
                 ViewState["chao"] = value;
            }
        }
        ShanD shanD = new ShanD();
        protected void Page_Load(object sender, EventArgs e)
        {
            ClientScript.RegisterOnSubmitStatement(typeof(string), "onsubmit", "return pageValid();");
            if(!IsPostBack)
            {
                chao = shanD.FindChuHao(30);
                endNum.Text = chao[0].num;
                statNum.Text = chao[29].num;
            }
        }
        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            chao = shanD.FindChuHao(50);
        }
        protected void LinkButton2_Click(object sender, EventArgs e)
        {
            chao = shanD.FindChuHao(80);
        }
        protected void LinkButton4_Click(object sender, EventArgs e)
        {
            chao.Reverse();        
        }
    }
    如果你的ChuHao是不可序列化的,那就把ViewState["chao"]改为Session["chao"]
    我还是那句话,建议你先了解asp.net的生命周期,不然你以后碰到这种问题还是不知道该怎么处理。