//这是个机票查询的效果
//datalist显示的航空公司信息
//gridview显示的是舱位信息和价格
DataSet ds = Common.DL_fly(StartCity, ArriveCity, StartDate, ArriveDate);//调用接口查询
dlFlight.DataSource = ds.Tables[0]; //datalist
dlFlight.DataBind();
for (int i = 0, j = dlFlight.Items.Count; i < j; i++)
{
GridView dl = (GridView)dlFlight.Items[i].FindControl("GridView2");
Label lb = (Label)dlFlight.Items[i].FindControl("lblLineNum"); // 航空公司对应的ID
dl.DataSource = Common.
getDataTable(ds, lb.Text); //gridview
dl.DataBind();
}
//已经测试过调用接口速度不慢 主要慢在给datalist 和gridview 绑定数据源的时候慢。
//gridview 绑定的数据源
public static List<AvailablePrice>
getDataTable(DataSet ds, string str)
{
List<AvailablePrice> lst = new List<AvailablePrice>();
DataRow[] dr = ds.Tables[1].Select("LineNum = '" + str + "'"); //根据航空公司对应的ID查询对应的舱位信息
AvailablePrice availablePrice = null;
foreach (DataRow row in dr)
{
availablePrice = new AvailablePrice();
availablePrice.LineNum = row["LineNum"].ToString();
availablePrice.AirLine = row["AirLine"].ToString();
availablePrice.Cabin = CabinManager.GetCabinByCabincode(row["AirLine"].ToString(), row["Cabin"].ToString());
availablePrice.ReturnLimit = row["ReturnLimit"].ToString();
availablePrice.ChangeLimit = row["ChangeLimit"].ToString();
availablePrice.SinglePrice = row["SinglePrice"].ToString();
availablePrice.FuelTax = row["FuelTax"].ToString();
availablePrice.AirPortTax = row["AirPortTax"].ToString();
availablePrice.DisCount = row["DisCount"].ToString();
lst.Add(availablePrice);
}
return lst;
}
//不知道该怎么优化了 查询速度太慢了 差不多得1分钟才能显示 不知道如何优化?