private wcInteractionFilter Add_FilterControl(bool isReCreate) { var dsFields = MyBI.Me.Get_DWColumn(this.WHCode) .Where(p => p.Visible && p.DataType != "NUM" && !p.TblName_Virtual.Contains("DimTime")) .Select(p => new COMCodeNameObj(p.ColName, p.ColAliasVI)).ToList(); wcInteractionFilter ctrl = null; if (isReCreate) { foreach (string ctrlID in CtrlDashboardFilterIDs) { ctrl = this.LoadControl("wcInteractionFilter.ascx") as wcInteractionFilter; ctrl.ID = ctrlID; ctrl.OnRemove += this.FilterCtrl_Remove; ctrl.Set_Source(dsFields, "Code", "Name"); ctrl_DashboardFilters.Controls.Add(ctrl); } return(null); } var guiID = Guid.NewGuid().ToString().Replace("-", "_"); ctrl = this.LoadControl("wcInteractionFilter.ascx") as wcInteractionFilter; ctrl.ID = string.Format("gen_{0}", guiID); ctrl.OnRemove += this.FilterCtrl_Remove; ctrl.Set_Source(dsFields, "Code", "Name"); ctrl_DashboardFilters.Controls.Add(ctrl); CtrlDashboardFilterIDs.Add(ctrl.ID); return(ctrl); }
protected void FilterCtrl_Remove(object sender, EventArgs e) { string ctrlID = (sender.GetVal("Parent") as Control).ID; CtrlDashboardFilterIDs.RemoveAll(p => p.Split(',', StringSplitOptions.RemoveEmptyEntries).First() == ctrlID); ctrl_DashboardFilters.Controls.RemoveAll(p => p.ID == ctrlID); }
protected void Page_Load(object sender, EventArgs e) { DashboardId = Get_Param(PageArgs.DashboardId); if (string.IsNullOrEmpty(DashboardId)) { Page.Title = "New Dashboard"; WHCode = Get_Param(PageArgs.WHCode); if (!IsPostBack) { // clean up session data MySession.DashboardDefine_CurEditing = null; MySession.DashboardDefine_UsingPortlet.Clear(); // clean up control value txtDashboardName.Text = ""; TwoPane_1.Checked = true; Layout_Initialize(TwoPane_1.ID); // clean up filters ctrl_DashboardFilters.Controls.Clear(); CtrlDashboardFilterIDs.Clear(); } } else { Page.Title = "Edit Dashboard"; Dashboard = MyBI.Me.Get_Dashboard().FirstOrDefault(db => db.ID == Int32.Parse(DashboardId)); WHCode = Dashboard.WHCode; if (!IsPostBack) { txtDashboardName.Text = Dashboard.JsonObj.DisplayName; // Layout style RadioButton radio = Helpers.FindControlRecur(Page, Dashboard.JsonObj.Template) as RadioButton; if (radio != null) { radio.Checked = true; Layout_Initialize(radio.ID); } // Add Filter. ctrl_DashboardFilters.Controls.Clear(); List <InteractionFilter> filters = Dashboard.JsonObj.Filters; foreach (var item in filters) { var ctrl = this.Add_FilterControl(false); ctrl.Set_FilterInfo(item); } MySession.DashboardDefine_CurEditing = Dashboard.Code; // Default ? chkDefault.Checked = Dashboard.IsDefault; } } if (IsPostBack) { ctrl_DashboardFilters.Controls.Clear(); Add_FilterControl(true); if (!String.IsNullOrEmpty(Layout)) { Layout_Initialize(Layout); int c = 0; string[] postedKeys = Request.Form.AllKeys; foreach (string key in postedKeys) { if (!string.IsNullOrEmpty(key) && key.EndsWith("$m_portletCandidate") && c <= 4) { m_selectedPortlets.Add(Request.Form[key]); ++c; } } } } }