protected void Page_PreRender(object sender, EventArgs e) { MethodBase lmth = MethodBase.GetCurrentMethod(); string lsRoutineName = lmth.DeclaringType + "." + lmth.Name; string sMostRecentEventID = ""; string sPrevSelectedID = ""; if ((!IsPostBack) || (_Reload)) { Classes.cUserOptions OptionsLoader = new Classes.cUserOptions(); OptionsLoader.LoadUserOptions(Session["UserName"].ToString(), HttpContext.Current.Request.Url.AbsolutePath); foreach (Classes.cUserOption Option in OptionsLoader.UserOptionList) { if ((Option.ObjectName.ToUpper() == "DDLEVENT") && (Option.ObjectOption.ToUpper() == "SELECTEDEVENT")) { sPrevSelectedID = Option.OptionValue; } else if (Option.ObjectName.ToUpper() == "GVREGISTRATIONS") { if (Option.ObjectOption.ToUpper() == "SORTDIR") { ViewState["SortDir"] = Option.OptionValue; } else if (Option.ObjectOption.ToUpper() == "SORTFIELD") { ViewState["SortField"] = Option.OptionValue; } } } SortedList sParams = new SortedList(); sParams.Add("@CampaignID", Master.CampaignID); DataTable dtEvents = Classes.cUtilities.LoadDataTable("uspGetCampaignEvents", sParams, "LARPortal", Master.UserName, lsRoutineName + ".uspGetCampaignEvents"); DataView dvEvents = new DataView(dtEvents, "", "StartDate desc", DataViewRowState.CurrentRows); if (dtEvents.Columns ["DisplayValue"] == null) { dtEvents.Columns.Add("DisplayValue", typeof(string)); } DateTime dtMostReventEvent = DateTime.MaxValue; foreach (DataRow dRow in dtEvents.Rows) { DateTime dtTemp; if (DateTime.TryParse(dRow ["StartDate"].ToString(), out dtTemp)) { dRow ["DisplayValue"] = dRow ["EventName"].ToString() + " " + dtTemp.ToShortDateString(); if ((dtTemp > DateTime.Today) && (dtTemp <= dtMostReventEvent)) { dtMostReventEvent = dtTemp; sMostRecentEventID = dRow ["EventID"].ToString(); } } else { dRow ["DisplayValue"] = dRow ["EventName"].ToString(); } } ddlEvent.DataSource = dvEvents; ddlEvent.DataTextField = "DisplayValue"; ddlEvent.DataValueField = "EventID"; ddlEvent.DataBind(); if (!String.IsNullOrEmpty(sMostRecentEventID)) { foreach (ListItem li in ddlEvent.Items) { if (li.Value == sMostRecentEventID) { ddlEvent.ClearSelection(); li.Selected = true; } } } if (!String.IsNullOrEmpty(sPrevSelectedID)) { foreach (ListItem li in ddlEvent.Items) { if (li.Value == sPrevSelectedID) { ddlEvent.ClearSelection(); li.Selected = true; } } } ddlEvent_SelectedIndexChanged(null, null); } }
protected void BindData() { MethodBase lmth = MethodBase.GetCurrentMethod(); string lsRoutineName = lmth.DeclaringType + "." + lmth.Name; SortedList sParams = new SortedList(); sParams.Add("@CampaignID", Master.CampaignID); DataTable dtPELs = Classes.cUtilities.LoadDataTable("uspGetPELsToApprove", sParams, "LARPortal", Master.UserName, lsRoutineName + ".uspGetPELsToApprove"); if (dtPELs.Columns["AddendumImage"] == null) { dtPELs.Columns.Add("AddendumImage", typeof(string)); } if (dtPELs.Columns["StaffCommentsImages"] == null) { dtPELs.Columns.Add("StaffCommentsImage", typeof(string)); } foreach (DataRow dRow in dtPELs.Rows) { if (dRow["Addendum"].ToString() == "Y") { dRow["AddendumImage"] = "../img/checkbox.png"; } else { dRow["AddendumImage"] = "../img/uncheckbox.png"; } if (dRow["StaffComments"].ToString() == "Y") { dRow["StaffCommentsImage"] = "../img/checkbox.png"; } else { dRow["StaffCommentsImage"] = "../img/uncheckbox.png"; } } string sCharacterNameFilter = ""; string sEventDateFilter = ""; string sEventNameFilter = ""; string sPELStatusFilter = ""; string sSortField = ""; string sSortDir = "ASC"; Classes.cUserOptions OptionsLoader = new Classes.cUserOptions(); OptionsLoader.LoadUserOptions(Session["UserName"].ToString(), HttpContext.Current.Request.Url.AbsolutePath); foreach (Classes.cUserOption Option in OptionsLoader.UserOptionList) { if ((Option.ObjectName.ToUpper() == "DDLCHARACTERNAME") && (Option.ObjectOption.ToUpper() == "SELECTEDVALUE")) { sCharacterNameFilter = Option.OptionValue; } else if ((Option.ObjectName.ToUpper() == "DDLEVENTDATE") && (Option.ObjectOption.ToUpper() == "SELECTEDVALUE")) { sEventDateFilter = Option.OptionValue; } else if ((Option.ObjectName.ToUpper() == "DDLEVENTNAME") && (Option.ObjectOption.ToUpper() == "SELECTEDVALUE")) { sEventNameFilter = Option.OptionValue; } else if ((Option.ObjectName.ToUpper() == "DDLSTATUS") && (Option.ObjectOption.ToUpper() == "SELECTEDVALUE")) { sPELStatusFilter = Option.OptionValue; } else if ((Option.ObjectName.ToUpper() == "GVPELLIST") && (Option.ObjectOption.ToUpper() == "SORTFIELD")) { sSortField = Option.OptionValue; } else if ((Option.ObjectName.ToUpper() == "GVPELLIST") && (Option.ObjectOption.ToUpper() == "SORTDIR")) { sSortDir = Option.OptionValue; } } if (sSortField.Length == 0) { sSortField = "PELStatus"; Classes.cUserOption Option = new Classes.cUserOption(); Option.SaveOptionValue(Session["UserName"].ToString(), HttpContext.Current.Request.Url.AbsolutePath, "gvPELList", "SortField", sSortField, ""); } foreach (DataRow dRow in dtPELs.Rows) { if (dRow["RoleAlignment"].ToString() != "PC") { dRow["CharacterAKA"] = dRow["RoleAlignment"].ToString(); } } // While creating the filter am also saving the selected values so we can go back and have the drop down list use them. string sRowFilter = "(1 = 1)"; // This is so it's easier to build the filter string. Now can always say 'and ....' if (sCharacterNameFilter.Length > 0) { sRowFilter += " and (CharacterAKA = '" + sCharacterNameFilter.Replace("'", "''") + "')"; } if (sEventDateFilter.Length > 0) { sRowFilter += " and (EventStartDate = '" + sEventDateFilter + "')"; } if (sEventNameFilter.Length > 0) { sRowFilter += " and (EventName = '" + sEventNameFilter.Replace("'", "''") + "')"; } if (sPELStatusFilter.Length > 0) { sRowFilter += " and (PELStatus = '" + sPELStatusFilter.Replace("'", "''") + "')"; } DataView dvPELs = new DataView(dtPELs); try { dvPELs.RowFilter = sRowFilter; } catch (Exception ex) { // Means there was something wrong - probably somebody mucked with the filter to we are going to clear the row filter. sRowFilter = ""; } try { string sSortString = sSortField + " " + sSortDir; if (sSortField.ToUpper().StartsWith("PELSTATUS")) { sSortString += ", DateSubmitted"; } dvPELs.Sort = sSortString; } catch (Exception ex) { // Means there was something wrong - probably somebody mucked with the sort order to we are going to clear the row filter. sSortField = ""; sSortDir = ""; } dvPELs.RowStateFilter = DataViewRowState.CurrentRows; gvPELList.DataSource = dvPELs; gvPELList.DataBind(); // Now get the list of event names so the person can filter on it. DataView view = new DataView(dtPELs, sRowFilter, "EventName", DataViewRowState.CurrentRows); DataTable dtDistinctEvents = view.ToTable(true, "EventName"); ddlEventName.DataSource = dtDistinctEvents; ddlEventName.DataTextField = "EventName"; ddlEventName.DataValueField = "EventName"; ddlEventName.DataBind(); ddlEventName.Items.Insert(0, new ListItem("No Filter", "")); ddlEventName.SelectedIndex = -1; if (sEventNameFilter.Length > 0) { foreach (ListItem li in ddlEventName.Items) { if (li.Value == sEventNameFilter) { ddlEventName.ClearSelection(); li.Selected = true; } else { li.Selected = false; } } } if (ddlEventName.SelectedIndex == -1) // Didn't find what was selected. { ddlEventName.SelectedIndex = 0; } view = new DataView(dtPELs, sRowFilter, "CharacterAKA", DataViewRowState.CurrentRows); DataTable dtDistinctChars = view.ToTable(true, "CharacterAKA"); ddlCharacterName.DataSource = dtDistinctChars; ddlCharacterName.DataTextField = "CharacterAKA"; ddlCharacterName.DataValueField = "CharacterAKA"; ddlCharacterName.DataBind(); ddlCharacterName.Items.Insert(0, new ListItem("No Filter", "")); ddlCharacterName.SelectedIndex = -1; if (sCharacterNameFilter.Length > 0) { foreach (ListItem li in ddlCharacterName.Items) { if (li.Value == sCharacterNameFilter) { ddlCharacterName.ClearSelection(); li.Selected = true; } else { li.Selected = false; } } } if (ddlCharacterName.SelectedIndex == -1) // Didn't find what was selected. { ddlCharacterName.SelectedIndex = 0; } view = new DataView(dtPELs, sRowFilter, "EventStartDate", DataViewRowState.CurrentRows); DataTable dtDistinctDates = view.ToTable(true, "EventStartDateStr"); ddlEventDate.DataSource = dtDistinctDates; ddlEventDate.DataTextField = "EventStartDateStr"; ddlEventDate.DataValueField = "EventStartDateStr"; ddlEventDate.DataBind(); ddlEventDate.Items.Insert(0, new ListItem("No Filter", "")); ddlEventDate.SelectedIndex = -1; if (sEventDateFilter.Length > 0) { foreach (ListItem li in ddlEventDate.Items) { if (li.Value == sEventDateFilter) { ddlEventDate.ClearSelection(); li.Selected = true; } else { li.Selected = false; } } } if (ddlEventDate.SelectedIndex == -1) // Didn't find what was selected. { ddlEventDate.SelectedIndex = 0; } view = new DataView(dtPELs, sRowFilter, "PELStatus desc", DataViewRowState.CurrentRows); DataTable dtDistinctStatus = view.ToTable(true, "PELStatus"); ddlStatus.DataSource = dtDistinctStatus; ddlStatus.DataTextField = "PELStatus"; ddlStatus.DataValueField = "PELStatus"; ddlStatus.DataBind(); ddlStatus.Items.Insert(0, new ListItem("No Filter", "")); ddlStatus.SelectedIndex = -1; if (sPELStatusFilter.Length > 0) { foreach (ListItem li in ddlStatus.Items) { if (li.Value == sPELStatusFilter) { ddlStatus.ClearSelection(); li.Selected = true; } else { li.Selected = false; } } } if (ddlStatus.SelectedIndex == -1) // Didn't find what was selected. { ddlStatus.SelectedIndex = 0; } DisplaySorting(sSortField, sSortDir); }