Я использую Gridview с включенной подкачкой. Я связываю girdview в событии Page_Load, используя LINQ to XML.
Код выглядит следующим образом.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Cache["grid"] == null)
{
DataSet ds = new DataSet();
ds.ReadXml(HttpContext.Current.Server.MapPath("~/CarRentalAddress.xml"));
var grid = (from d in ds.Tables[0].AsEnumerable() orderby d.Field<string>("City") where d.Field<string>("Enabled") == "1" select new { City = d.Field<string>("City"), HotelName = d.Field<string>("HotelName"), Address = d.Field<string>("Address"), EmailID1 = d.Field<string>("EmailID1"), EmailID2 = d.Field<string>("EmailID2") }).ToList();
Cache["grid"] = grid;
totalrows = grid.Count().ToString();
grdAddress.DataSource = grid;
grdAddress.DataBind();
}
else
{
var grid = Cache["grid"];
//Extension method Count() is not working here
totalrows = grid.Count().ToString();
grdAddress.DataSource = grid;
grdAddress.DataBind();
}
}
}
Метод расширения Count () в остальной части кода не работает. я хочу знать лучший способ приведения объекта кеша, чтобы методы Extension и все вещи LINQ работали.