private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack) 

dataSet1.ReadXml(Server.MapPath(xmlfile));
dataView1.Table=dataSet1.Tables["class"];
DataGrid1.DataSource=dataView1;
DataGrid1.DataBind();
}
}
private void Button2_Click(object sender, System.EventArgs e)
{
dataView1.Table=dataSet1.Tables["classified"];
DataGrid1.DataSource=dataView1;
DataGrid1.DataBind();   
}
页面显示了CLASS表。Button2_Click用来换DATASET里的另一张表。
问题:为什么点了Button2_Click后DATAGRID不能显示另一张表??
两张表都是好的,在Page_Load都试过能显示,但用按钮换表就不行。为什么?
最好能有个代码看看。

解决方案 »

  1.   

    button2 click的时候,由于返回到服务器,Dataset已经 nothing
      

  2.   

    怎么才能实现button2 click的时候DATASET里有值?
    能给点这方面的资料吗?
      

  3.   

    从新帮定又要从服务器下载一次XML。很麻烦。能有其他具体点办法解决吗?
      

  4.   

    能不能在Page_Load把表读到字符串中,在页面点击按狃的时候从字符串中恢复要的表》?
      

  5.   

    有一个方法去获取ds:
    private DataSet GetDataSet()
    {
    DataSet ds;
    if(Cache["Data"] == null)
    {
    ds.ReadXml(Server.MapPath(xmlfile));
    }else
    {
    ds = (DataSet)Cache["Data"];
    }

    在用到数据的地方调用该方法即可。
      

  6.   

    上面错了:
    有一个方法去获取ds:
    private DataSet GetDataSet()
    {
    DataSet ds;
    if(Cache["Data"] == null)
    {
    ds.ReadXml(Server.MapPath(xmlfile));
    Cache["Data"] = ds;
    }else
    {
    ds = (DataSet)Cache["Data"];
    }

    在用到数据的地方调用该方法即可。