绑定DataSet里倒数10条数据。(由于存在DataSet里的数据是按时间排的,我们显示需要按时间倒序排,数据是存在xml中,从别人网站抓取的,所以不能在数据库中排好序,这样就需要用到以下方法)
方法:将DataSet里的数据排序,然后复制到一个新的DataTable中,这个DataTable只存放后10条数据。
Code
//bind fund 新发基金
private void BindRepNew()
{
DataSet ds = new DataSet();
string xmlFile = System.Web.HttpContext.Current.Server.MapPath("~/QsqDataCache/Fund/FundNew/xmlData/FundNew.xml");
ds.ReadXml(xmlFile);
if(ds.Tables.Count>0)
{
DataTable Newdt = ds.Tables[0].Clone();//复制10条记录填充到新的ds中,绑定新ds到RepNew
DataView dv = ds.Tables[0].DefaultView;//将老dt排序,复制最后10条记录到新dt中
dv.Sort = "beginTime";
for(int i=dv.Count-1;i>dv.Count-11;i--)//由于dv.Count=15,而最大的dv[i] i=14,所以要减1
{
Newdt.Rows.Add(dv[i].Row.ItemArray);
}
this.RepNew.DataSource = Newdt;
this.RepNew.DataBind();
}
}
Code
Code
//绑定Dg的xml数据
private void BindDgXML()
{
string name = "index_open"+DDlTime.SelectedValue+".xml";
DataSet ds = new DataSet();
string xmlFile = Server.MapPath("~/QsqDataCache/Fund/FundValue/xmlData/"+name);
ds.ReadXml(xmlFile);
if(ds.Tables.Count>0)
{
dgRows = ds.Tables[0].Rows.Count;
DataTable dt = ds.Tables[0].Clone();
dt.Columns["DayIncreaseRate"].DataType = typeof(double);
DataRow dr;
foreach(DataRow drold in ds.Tables[0].Rows)
{
dr = dt.NewRow();
dr.ItemArray = drold.ItemArray;
dt.Rows.Add(dr);
}
DataView dv = dt.DefaultView;
dv.Sort="DayIncreaseRate desc";
Dg.DataSource = dv;
Dg.DataBind();
}