// Преобразовать строку в тип private void SetRules(string rules, typeRules type) { if (rules == null) { return; } this._ListRules.Clear(); string[] array_type = rules.Split(','); foreach (string st in array_type) { string[] array_section = st.Split(':'); if (array_section[0] == type.ToString()) { string[] array_param = array_section[1].Split(';'); foreach (string param in array_param) { string[] array_value = param.Split('-'); if (array_value[0].ToString() != "") { int id = int.Parse(array_value[0].ToString()); int access = int.Parse(array_value[1].ToString()); this._ListRules.Add(new RulesDetali(id, (Access)access, GetName(id))); } } } } }
/// <summary> /// Вывести панель PlaceHolder с элементами указанного типа /// </summary> /// <param name="type"></param> protected void OutPlaceHolder(typeRules type) { if (this.FindControl("ph" + type.ToString()) == null) { return; } PlaceHolder ph = (PlaceHolder)this.FindControl("ph" + type.ToString()); if (ph == null) { return; } RulesCollection rcol = RulesCollection(type); ph.Controls.Clear(); ph.Controls.Add(new LiteralControl("<table class='tabRules'>")); ph.Controls.Add(new LiteralControl("<tr><td class='nametype' colspan ='2'>")); ph.Controls.Add(new LiteralControl(type.ToString() + ": ")); DropDownList ddlObject = new DropDownList(); List <IObj> li = rcol.GetNotObject(); if (li != null) { li.Insert(0, new ListSection(0, base.GetStringBaseResource("ddlSelect"))); ddlObject.Enabled = true; ddlObject.ID = "ddl" + type.ToString(); ddlObject.Items.Clear(); ddlObject.DataTextField = "NameObject"; ddlObject.DataValueField = "IDObject"; ddlObject.DataSource = li; //ddlObject.SelectedIndex = -1; ddlObject.AutoPostBack = true; ddlObject.SelectedIndexChanged += ddlObject_SelectedIndexChanged; ddlObject.DataBind(); } else { ddlObject.Enabled = false; } ph.Controls.Add(ddlObject); ph.Controls.Add(new LiteralControl("</td></tr>")); foreach (RulesDetali rd in RulesCollection(type)) { ph.Controls.Add(new LiteralControl("<tr><td class='object'>")); ph.Controls.Add(new LiteralControl(rd.nameObject + ":")); ph.Controls.Add(new LiteralControl("</td><td class='access'>")); DropDownList ddlAccess = new DropDownList(); ddlAccess.Items.Clear(); foreach (Access tr in Enum.GetValues(typeof(Access))) { ddlAccess.Items.Add(new ListItem(tr.ToString(), ((int)tr).ToString())); } ddlAccess.Items.Add(new ListItem("Clear", "4")); ddlAccess.ID = type.ToString() + "_" + rd.IDObject.ToString(); ddlAccess.AutoPostBack = true; ddlAccess.SelectedIndexChanged += ddlAccess_SelectedIndexChanged; ddlAccess.SelectedValue = ((int)rd.Access).ToString(); ddlAccess.DataBind(); ph.Controls.Add(ddlAccess); } ph.Controls.Add(new LiteralControl("</table>")); }