void BuildEditForm() { var fieldSettingsTable = FieldSettingsController.GetFieldSettingsTable(ModuleId); var editForm = new List <FormColumnInfo>(); FormColumnInfo currentField; var security = new ModuleSecurity(ModuleContext); _editControls = new EditControls(ModuleContext); foreach (DataRow dr in Data.Tables[DataSetTableName.Fields].Rows) { var fieldTitle = dr[FieldsTableColumn.Title].AsString(); var dataTypeName = dr[FieldsTableColumn.Type].AsString(); var dataType = DataType.ByName(dataTypeName); var isColumnEditable = Convert.ToBoolean((!dataType.SupportsHideOnEdit || Convert.ToBoolean(dr[FieldsTableColumn.ShowOnEdit])) && (!Convert.ToBoolean(dr[FieldsTableColumn.IsPrivate]) || security.IsAllowedToEditAllColumns())); //If Column is hidden, the Fieldtype falls back to "String" as the related EditControl works perfect even if it is not visibile //EditControls of other user defined datatypes may use core controls (e.g. UrlControl or RTE) which are not rock solid regarding viewstate. if (!isColumnEditable && dataType.IsUserDefinedField) { dataTypeName = "String"; } currentField = new FormColumnInfo { IsUserDefinedField = dataType.IsUserDefinedField }; if (dataType.IsSeparator) { var fieldId = (int)dr[FieldsTableColumn.Id]; currentField.IsCollapsible = Data.Tables[DataSetTableName.FieldSettings].GetFieldSetting("IsCollapsible", fieldId).AsBoolean(); currentField.IsSeparator = true; if (dr[FieldsTableColumn.Visible].AsBoolean()) { currentField.Title = fieldTitle; } currentField.Visible = isColumnEditable; } else { currentField.Help = dr[FieldsTableColumn.HelpText].AsString(); currentField.Title = dr[FieldsTableColumn.Title].AsString(); currentField.Required = Convert.ToBoolean(dr[FieldsTableColumn.Required].AsBoolean() && dataType.IsUserDefinedField); //advanced Settings: Dynamic control currentField.EditControl = _editControls.Add(dr[FieldsTableColumn.Title].AsString(), dataTypeName, Convert.ToInt32(dr[FieldsTableColumn.Id]), dr[FieldsTableColumn.HelpText].AsString(), dr[FieldsTableColumn.Default].AsString(), dr[FieldsTableColumn.Required].AsBoolean(), dr[FieldsTableColumn.ValidationRule].AsString(), dr[FieldsTableColumn.ValidationMessage].AsString(), dr[FieldsTableColumn.EditStyle].AsString(), dr[FieldsTableColumn.InputSettings].AsString(), dr[FieldsTableColumn.OutputSettings].AsString(), dr[FieldsTableColumn.NormalizeFlag].AsBoolean(), dr[FieldsTableColumn.MultipleValues].AsBoolean(), fieldSettingsTable, this); currentField.Visible = isColumnEditable; } editForm.Add(currentField); } if (CaptchaNeeded()) { if (!Settings.PreferReCaptcha) { // use DnnCaptcha _ctlCaptcha = new CaptchaControl { ID = "Captcha", CaptchaWidth = Unit.Pixel(130), CaptchaHeight = Unit.Pixel(40), ToolTip = Localization.GetString("CaptchaToolTip", LocalResourceFile), ErrorMessage = Localization.GetString("CaptchaError", LocalResourceFile) }; currentField = new FormColumnInfo { Title = Localization.GetString("Captcha", LocalResourceFile), EditControl = _ctlCaptcha, Visible = true, IsUserDefinedField = false }; editForm.Add(currentField); } } var enableFormTemplate = Settings.EnableFormTemplate; var formTemplate = Settings.FormTemplate; if (enableFormTemplate && !string.IsNullOrEmpty(formTemplate)) { BuildTemplateForm(editForm, formTemplate); } else { BuildCssForm(editForm); } //Change captions of buttons in Form mode if (IsNewRow && Settings.ListOrForm.Contains("Form")) { cmdUpdate.Attributes["resourcekey"] = "cmdSend.Text"; } }
private void BuildUDFieldForm() { List<UDFieldInfo> list = (from p in Cache_UdtList where p.TypeId == TypeId select p).ToList(); if (list.Count < 1) { if (tblUserDefinedField.Visible == true) { tblUserDefinedField.Rows.Clear(); tblUserDefinedField.Visible = false; } return; } List<FormColumnInfo> listEditFrom = new List<FormColumnInfo>(); FormColumnInfo objColumn; ListEditControls = new EditControls(ModuleContext); foreach (UDFieldInfo objUDField in list) { objColumn = new FormColumnInfo(); objColumn.Name = objUDField.FieldName; objColumn.IsUserDefinedField = true; objColumn.Help = objUDField.HelpText; objColumn.Title = (objUDField.FieldTitle == null || objUDField.FieldTitle.Trim() == "") ? objUDField.FieldName : objUDField.FieldTitle; objColumn.Required = objUDField.Required; objColumn.Visible = true; objColumn.EditControl = ListEditControls.Add(objColumn.Name, objColumn.Title, objUDField.FieldType, objUDField.Id, objColumn.Help, objUDField.DefaultValue, objColumn.Required, objUDField.ValidationRule, objUDField.ValidationMessage, objUDField.EditStyle, objUDField.InputSettings, objUDField.OutputSettings, objUDField.NormalizeFlag); listEditFrom.Add(objColumn); } BuildFormAsTable(listEditFrom); }