private void Prepare() { if (IsPrepered) { return; } IsPrepered = true; mWhereCriteria = new List <MetricTrac.Bll.DataViewWhere.Extend>(); int ActiveRowsCount = 0; for (int i = RowCount - 1; i >= 0; i--) { ListManager lm = GetListManager(i); if (!lm.HideButton && !lm.HideRow) { ActiveRowsCount = i + 1; break; } } for (int i = 0; i < ActiveRowsCount; i++) { RepeaterItem it = rpWhere.Items[i]; ColumnSelect csWhere = (ColumnSelect)it.FindControl("csWhere"); string TableName; string CoulumnName; string TextColumnName; string SelectControl; if (!csWhere.SelectedField(DataViewTypeID, out TableName, out CoulumnName, out TextColumnName, out SelectControl)) { continue; } string v = GetValue(it, TableName, CoulumnName, SelectControl); ConditionSelect Condition = (ConditionSelect)it.FindControl("Condition"); MetricTrac.Bll.DataViewWhere.Extend c = new MetricTrac.Bll.DataViewWhere.Extend() { TableName = TableName, ColumnName = CoulumnName, CompareValue = v, DataViewConditionTypeID = Condition.DataViewConditionTypeID }; mWhereCriteria.Add(c); } }
protected void Page_Prerender(object sender, EventArgs e) { if (!IsPostBack) { for (int i = 1; i < RowCount; i++) { HideRow(i); } if (mWhereCriteriaUpdated && mWhereCriteria.Count > 0) { for (int i = 0; i < mWhereCriteria.Count; i++) { var c = mWhereCriteria[i]; ShowRow(i); if (i > 0) { HideListManager(i - 1); } RepeaterItem it = rpWhere.Items[i]; ColumnSelect csWhere = (ColumnSelect)it.FindControl("csWhere"); ConditionSelect Condition = (ConditionSelect)it.FindControl("Condition"); PlaceHolder phValue = (PlaceHolder)it.FindControl("phValue"); System.Web.UI.WebControls.TextBox tbValue = (System.Web.UI.WebControls.TextBox)it.FindControl("tbValue"); Telerik.Web.UI.RadComboBox rcbValue = (Telerik.Web.UI.RadComboBox)it.FindControl("rcbValue"); Telerik.Web.UI.RadNumericTextBox rnValue = (Telerik.Web.UI.RadNumericTextBox)it.FindControl("rnValue"); tbValue.Visible = false; rcbValue.Visible = false; rnValue.Visible = false; csWhere.Select(c.TableName, c.ColumnName); string OutTable; string OutColumn; string TextColumn; string SelectControl; if (!csWhere.SelectedField(DataViewTypeID, out OutTable, out OutColumn, out TextColumn, out SelectControl)) { continue; } Type t = typeof(MetricTrac.Bll.LinqMicajahEntitybase).Assembly.GetType("MetricTrac.Bll." + c.TableName); if (t == null) { continue; } System.Reflection.PropertyInfo pi = t.GetProperty(c.ColumnName); if (pi == null) { continue; } if (SelectControl != null) { Condition.Mode = ConditionSelect.ConditionViewMode.Equal; foreach (Panel p in phValue.Controls) { if (p.ID != System.IO.Path.GetFileNameWithoutExtension(SelectControl)) { continue; } if (!(p.Controls[0] is MetricTrac.Utils.IValueSelectControl)) { continue; } MetricTrac.Utils.IValueSelectControl iv = (MetricTrac.Utils.IValueSelectControl)p.Controls[0]; iv.SelectedValue = c.CompareValue; p.Style[HtmlTextWriterStyle.Display] = "block"; break; } continue; } if (pi.PropertyType == typeof(string)) { Condition.Mode = ConditionSelect.ConditionViewMode.Like; tbValue.Visible = true; tbValue.Text = c.CompareValue; continue; } if (pi.PropertyType == typeof(Guid) || pi.PropertyType == typeof(Guid?)) { Condition.Mode = ConditionSelect.ConditionViewMode.Equal; rcbValue.Visible = true; rcbValue.DataValueField = c.ColumnName; rcbValue.DataTextField = TextColumn; rcbValue.DataSource = MetricTrac.Bll.LinqMicajahDataContext.SelectGuid(c.TableName, c.ColumnName, TextColumn); rcbValue.DataBind(); rcbValue.SelectedValue = c.CompareValue; continue; } foreach (Type nt in NumericType) { if (pi.PropertyType == nt) { Condition.Mode = ConditionSelect.ConditionViewMode.Compare; rnValue.Visible = true; double v; if (!double.TryParse(c.CompareValue, out v)) { continue; } rnValue.Value = v; continue; } } Condition.Mode = ConditionSelect.ConditionViewMode.All; tbValue.Visible = true; } ShowListManager(mWhereCriteria.Count - 1); } else { ShowRow(0); ShowRow(1); ShowRow(2); HideListManager(0); HideListManager(1); ShowListManager(2); } } }
private string GetValue(RepeaterItem it, string Table, string Column, string SelectControl) { ConditionSelect Condition = (ConditionSelect)it.FindControl("Condition"); PlaceHolder phValue = (PlaceHolder)it.FindControl("phValue"); System.Web.UI.WebControls.TextBox tbValue = (System.Web.UI.WebControls.TextBox)it.FindControl("tbValue"); Telerik.Web.UI.RadComboBox rcbValue = (Telerik.Web.UI.RadComboBox)it.FindControl("rcbValue"); Telerik.Web.UI.RadNumericTextBox rnValue = (Telerik.Web.UI.RadNumericTextBox)it.FindControl("rnValue"); Type t = typeof(MetricTrac.Bll.LinqMicajahEntitybase).Assembly.GetType("MetricTrac.Bll." + Table); if (t == null) { return(null); } System.Reflection.PropertyInfo pi = t.GetProperty(Column); if (pi == null) { return(null); } if (SelectControl != null) { foreach (Panel p in phValue.Controls) { if (p.ID != System.IO.Path.GetFileNameWithoutExtension(SelectControl)) { continue; } if (p.Controls.Count < 1) { return(null); } if (!(p.Controls[0] is MetricTrac.Utils.IValueSelectControl)) { return(null); } MetricTrac.Utils.IValueSelectControl iv = (MetricTrac.Utils.IValueSelectControl)p.Controls[0]; if (!iv.IsValueSelected) { return(null); } return(iv.SelectedValue.ToString()); } return(null); } if (pi.PropertyType == typeof(string)) { if (tbValue.Text == string.Empty) { return(null); } return(tbValue.Text); } if (pi.PropertyType == typeof(Guid) || pi.PropertyType == typeof(Guid?)) { if (string.IsNullOrEmpty(rcbValue.SelectedValue)) { return(null); } return(rcbValue.SelectedValue); } foreach (Type nt in NumericType) { if (pi.PropertyType == nt) { if (rnValue.Value == null) { return(null); } return(((double)rnValue.Value).ToString()); } } return(null); }
protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); Telerik.Web.UI.RadAjaxManager m = Telerik.Web.UI.RadAjaxManager.GetCurrent(Page); foreach (RepeaterItem it in rpWhere.Items) { ColumnSelect csWhere = (ColumnSelect)it.FindControl("csWhere"); ConditionSelect Condition = (ConditionSelect)it.FindControl("Condition"); PlaceHolder phValue = (PlaceHolder)it.FindControl("phValue"); System.Web.UI.WebControls.TextBox tbValue = (System.Web.UI.WebControls.TextBox)it.FindControl("tbValue"); Telerik.Web.UI.RadComboBox rcbValue = (Telerik.Web.UI.RadComboBox)it.FindControl("rcbValue"); Telerik.Web.UI.RadNumericTextBox rnValue = (Telerik.Web.UI.RadNumericTextBox)it.FindControl("rnValue"); rcbValue.Visible = false; rnValue.Visible = false; string Table; string Column; string TextColumn; string SelectControl; if (!csWhere.SelectedField(DataViewTypeID, out Table, out Column, out TextColumn, out SelectControl)) { continue; } tbValue.Visible = false; Type t = typeof(MetricTrac.Bll.LinqMicajahEntitybase).Assembly.GetType("MetricTrac.Bll." + Table); if (t == null) { continue; } System.Reflection.PropertyInfo pi = t.GetProperty(Column); if (pi == null) { continue; } if (SelectControl != null) { Condition.Mode = ConditionSelect.ConditionViewMode.Equal; foreach (Panel p in phValue.Controls) { if (p.ID != System.IO.Path.GetFileNameWithoutExtension(SelectControl)) { continue; } p.Style["display"] = "block"; } continue; } if (pi.PropertyType == typeof(string)) { Condition.Mode = ConditionSelect.ConditionViewMode.Like; tbValue.Visible = true; continue; } if (pi.PropertyType == typeof(Guid) || pi.PropertyType == typeof(Guid?)) { Condition.Mode = ConditionSelect.ConditionViewMode.Equal; rcbValue.Visible = true; rcbValue.DataValueField = Column; rcbValue.DataTextField = TextColumn; rcbValue.DataSource = MetricTrac.Bll.LinqMicajahDataContext.SelectGuid(Table, Column, TextColumn); rcbValue.DataBind(); continue; } foreach (Type nt in NumericType) { if (pi.PropertyType == nt) { Condition.Mode = ConditionSelect.ConditionViewMode.Compare; rnValue.Visible = true; continue; } } Condition.Mode = ConditionSelect.ConditionViewMode.All; tbValue.Visible = true; } }