我有一个 100 家酒店的列表,我必须在其中显示每家酒店的 10 张图片。我为此使用了 DataList 控件。由于我的图像存储在不同的表中,所以我每次都必须使用 ItemDataBound Event 中的 HotelId 查询图像列表。但是每次调用该存储过程大约需要 6 秒才能完成。所以对于 100 行,它需要 100*6 秒,这是我的代码
protected void dlSearchResult_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (ListItemType.Item == e.Item.ItemType || ListItemType.AlternatingItem == e.Item.ItemType)
{
HtmlGenericControl ul = (HtmlGenericControl)e.Item.FindControl("ulImages");
DataSet dsImages = new DataSet();
string HotelId=dlSearchResult.DataKeys[e.Item.ItemIndex].ToString();
dsImages = SqlHelper.ExecuteDataset(Connection.ConnectionString, CommandType.StoredProcedure, "GetImage_ByHotelID", new SqlParameter("@HotelId", HotelId));
StringBuilder listtext=new StringBuilder ();
if (dsImages.Tables.Count > 0)
{
for (int i = 0; i < dsImages.Tables[0].Rows.Count; i++)
{
listtext.Append("<li class='PX_sri_photos_0'><a href='#'> <img src='" + dsImages.Tables[0].Rows[i]["URL"].ToString() + "' alt='" + dsImages.Tables[0].Rows[i]["Caption"].ToString() + "' /></a></li>");
}
}
ul.InnerHtml = listtext.ToString();
}
}
请给我指导以优化我的代码