protected void Page_Load(object sender, EventArgs e) { ClientFactory clientFactory = new ClientFactory(); ClientGateway <Client> cg = (ClientGateway <Client>)clientFactory.GetClient(); if (Session["ID"] == null) { Response.Redirect("~/Login.aspx"); } trainings = cg.SelectTrainings(int.Parse(Session["ID"].ToString())); if (Session["filter"] != null) { Session["filter"] = null; const string FMT = "O"; DateTime from = DateTime.ParseExact(Session["dateFrom"].ToString(), FMT, CultureInfo.InvariantCulture); DateTime to = DateTime.ParseExact(Session["dateTo"].ToString(), FMT, CultureInfo.InvariantCulture); foreach (ClientTraining ct in trainings) { if (ct.TimeTo != null) { DateTime dateTimeTo = (DateTime)ct.TimeTo; if (DateTime.Compare(ct.TimeFrom, from) > 0 && DateTime.Compare(dateTimeTo, to) < 0) { filteredTrainings.Add(ct); } } } filtered = true; filterLabel.Style.Add("display", "inline-block"); filterLabel.Text = "Filter: " + Session["dateFrom"].ToString().Substring(0, 10) + " - " + Session["dateTo"].ToString().Substring(0, 10); } else { filterLabel.Style.Add("display", "none"); } if (!IsPostBack) { if (filtered) { trainingsGridView.DataSource = filteredTrainings; trainingsGridView.DataBind(); } else { trainingsGridView.DataSource = trainings; trainingsGridView.DataBind(); } } }