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会为空呢
把if(!IsPostBack)去掉吧
这个全局变量,赋值后整个类都可以使用三
劝你先了解一下asp.net的生命周期吧
定义多个变量实现或
定义属性通过viewState转化
protectted List<ChuHao> chao
{
get
{
}
set
{
}
}
LinkButton1_Click,是取50条数据,
LinkButton2_Click,取80条数据,
数据取出后都是存入chao
LinkButton4_Click的作用是反转chao,我知道服务器控件执行前都会执行page_load里的代码,所以放在了ispostback里面,关键问题就是LinkButton4_Click在执行反转的时候,不知道chao里有多少数据
这就和刚打开 chuhao 的页面的显示的内容基本一样了
{
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的生命周期,不然你以后碰到这种问题还是不知道该怎么处理。