private void AddRow(int index, BXCustomFieldEnum item) { HtmlTableRow newRow = new HtmlTableRow(); HtmlTableCell newCell = new HtmlTableCell(); Label newID = new Label(); newCell.Controls.Add(newID); newRow.Cells.Add(newCell); newCell = new HtmlTableCell(); TextBox newXmlId = new TextBox(); newXmlId.ID = string.Format("XMLID_{0}", index); newXmlId.Columns = 15; newCell.Controls.Add(newXmlId); CustomValidator newXmlIdValidator = new CustomValidator(); newXmlIdValidator.ControlToValidate = newXmlId.ID; newXmlIdValidator.ValidateEmptyText = true; newXmlIdValidator.ValidationGroup = ValidationGroup; newXmlIdValidator.ServerValidate += new ServerValidateEventHandler(newXmlIdValidator_ServerValidate); newXmlIdValidator.ClientValidationFunction = "customTypeListAdvancedSettings_validateXmlId"; newXmlIdValidator.Text = "*"; newXmlIdValidator.ErrorMessage = GetMessage("Message.XmlIdRequired"); newXmlIdValidator.Display = ValidatorDisplay.Static; newCell.Controls.Add(newXmlIdValidator); newRow.Cells.Add(newCell); newCell = new HtmlTableCell(); TextBox newValue = new TextBox(); newValue.ID = string.Format("VALUE_{0}", index); newValue.Columns = 35; newCell.Controls.Add(newValue); CustomValidator newValueValidator = new CustomValidator(); newValueValidator.ControlToValidate = newValue.ID; newValueValidator.ValidateEmptyText = true; newValueValidator.ValidationGroup = ValidationGroup; newValueValidator.ServerValidate += new ServerValidateEventHandler(newValueValidator_ServerValidate); newValueValidator.ClientValidationFunction = "customTypeListAdvancedSettings_validateValue"; newValueValidator.Text = "*"; newValueValidator.ErrorMessage = GetMessage("Message.ValueRequired"); newValueValidator.Display = ValidatorDisplay.Static; newCell.Controls.Add(newValueValidator); newRow.Cells.Add(newCell); valueForXmlId.Add(newXmlIdValidator, newValue); xmlIdForValue.Add(newValueValidator, newXmlId); newCell = new HtmlTableCell(); TextBox newSort = new TextBox(); newSort.ID = string.Format("SORT_{0}", index); newSort.Columns = 5; newSort.Text = string.Format("{0}", index * 10 + 10); newCell.Controls.Add(newSort); newRow.Cells.Add(newCell); newCell = new HtmlTableCell(); CheckBox newDefault = new CheckBox(); newDefault.ID = string.Format("DEFAULT_{0}", index); newCell.Controls.Add(newDefault); newRow.Cells.Add(newCell); newCell = new HtmlTableCell(); CheckBox newFlag = new CheckBox(); newFlag.ID = string.Format("FLAG_{0}", index); newCell.Controls.Add(newFlag); newRow.Cells.Add(newCell); if (item != null) { newID.Text = (item.Id != 0) ? item.Id.ToString() : string.Empty; newXmlId.Text = item.XmlId; newValue.Text = item.Value; newDefault.Checked = item.Default; } else { newID.Text = string.Empty; newXmlId.Text = string.Empty; newValue.Text = string.Empty; } newFlag.Checked = false; ListValue.Rows.Add(newRow); }
public void Save() { BXCustomFieldEnum.Delete( new BXFilter( new BXFilterItem(BXCustomFieldEnum.Fields.FieldType, BXSqlFilterOperators.Equal, field.FieldType), new BXFilterItem(BXCustomFieldEnum.Fields.FieldId, BXSqlFilterOperators.Equal, field.Id) ) ); bool firstRadio = false; BXCustomFieldEnumCollection values = new BXCustomFieldEnumCollection(); for (int i = 2; i < ListValue.Rows.Count; i++) { if (((CheckBox)ListValue.Rows[i].Cells[5].Controls[0]).Checked) continue; string xmlId = ((TextBox)ListValue.Rows[i].Cells[1].Controls[0]).Text; string value = ((TextBox)ListValue.Rows[i].Cells[2].Controls[0]).Text; string sortStr = ((TextBox)ListValue.Rows[i].Cells[3].Controls[0]).Text; int sort; if (!int.TryParse(sortStr, out sort)) sort = 100; bool isDefault = ((CheckBox)ListValue.Rows[i].Cells[4].Controls[0]).Checked; if (!field.Multiple) { if (!firstRadio && isDefault) firstRadio = true; else isDefault = false; } if (string.IsNullOrEmpty(xmlId) || string.IsNullOrEmpty(value)) continue; BXCustomFieldEnum item = new BXCustomFieldEnum(); item.Default = isDefault; item.Sort = sort; item.FieldType = field.FieldType; item.FieldId = field.Id; item.XmlId = xmlId; item.Value = value; values.Add(item); } values.Save(); while (ListValue.Rows.Count != 2) ListValue.Rows.RemoveAt(2); Quantity = 1; BindField(); }
public EnumerationItem(BXCustomFieldEnum data) { Id = data.Id; Title = data.Value; XmlId = data.XmlId; IsDefault = data.Default; Sort = data.Sort; }
public void SetSettings(object settings) { List<BXParamsBag<object>> bindingState = settings as List<BXParamsBag<object>> ?? new List<BXParamsBag<object>>(); while (ListValue.Rows.Count > 2) ListValue.Rows.RemoveAt(2); int offset = 0; bool defaultSelected = false; listSize = bindingState.Count; foreach (BXParamsBag<object> data in bindingState) { BXCustomFieldEnum item = new BXCustomFieldEnum(BXTextEncoder.EmptyTextEncoder); item.XmlId = data.Get("XmlId", string.Empty); item.Value = data.Get("Value", string.Empty); item.Default = data.Get("Default", false); item.Sort = data.Get("Sort", 100); defaultSelected = item.Default ? true : defaultSelected; AddRow(offset, item); offset++; } if (Quantity < offset + 1) Quantity = offset + 1; for (int i = offset; i < Quantity; i++) AddRow(i, null); //rdNone.Checked = !defaultSelected; initialized = true; }
public void Save() { OptimizeState(false); BXCustomFieldEnumCollection delete = new BXCustomFieldEnumCollection(); foreach (BXCustomFieldEnum e in Enums) foreach (EnumerationItem item in state) if (!item.IsNew && e.Id == item.Id) { if (item.Delete) e.Delete(); else { e.Value = item.Title; e.XmlId = item.XmlId; e.Sort = item.Sort; e.Default = item.IsDefault; e.Save(); } break; } state.RemoveAll(delegate(EnumerationItem item) { return !item.IsNew && item.Delete; }); foreach (EnumerationItem item in state) if (item.IsNew) { BXCustomFieldEnum e = new BXCustomFieldEnum(); e.FieldId = field.Id; e.FieldType = field.FieldType; e.Value = item.Title; e.XmlId = item.XmlId; e.Sort = item.Sort; e.Default = item.IsDefault; e.Save(); item.Id = e.Id; item.IsNew = false; } }