protected override void OnInit(EventArgs e) { base.OnInit(e); Field.HideField += Field_HideField; var fieldId = Request.QueryString["fieldId"]; var fields = FieldController.GetFieldsTable(ModuleContext.ModuleId, fieldId == "-1"); var filter = string.Format("{0}={1}", FieldsTableColumn.Id, fieldId); Field.DataSource = new DataView(fields, filter, "", DataViewRowState.CurrentRows)[0]; var fieldSettings = FieldSettingsController.GetFieldSettingsTable(ModuleContext.ModuleId); Field.Settings = fieldSettings; Field.Bind(); Field.Visible = true; Field.LocalizeString = LocalizeString; Field.ModuleContext = ModuleContext; }
public DataSet GetRow(int userDefinedRowId, bool withPreRenderedValues, bool filterScript = false) { var fieldsTable = FieldController.GetFieldsTable(ModuleId, false, false); DataSet ds; using (var dr = DataProvider.Instance().GetRow(userDefinedRowId, ModuleId)) { ds = BuildMainDataSet(fieldsTable, dr, !withPreRenderedValues); var fieldTablesettings = FieldSettingsController.GetFieldSettingsTable(ModuleId); ds.Tables.Add(fieldTablesettings); if (withPreRenderedValues) { RenderValuesToHtmlInsideDataSet(ds, filterScript); } ds.Namespace = "DotNetNuke/UserDefinedTable"; } return(ds); }
/// ----------------------------------------------------------------------------- /// <summary> /// Gets all Data values of an UDT table (module) from the Database as DataSet /// </summary> /// <param name = "withPreRenderedValues">specifies, whether links, dates etc. shall be prerendered for XML output</param> /// <returns>All field values as DataSet</returns> /// ----------------------------------------------------------------------------- public DataSet GetDataSet(bool withPreRenderedValues) { var fieldsTable = FieldController.GetFieldsTable(ModuleId, addNewColumn: false, addAuditColumns: false); DataSet ds; using (var dr = DataProvider.Instance().GetRows(ModuleId)) { ds = BuildMainDataSet(fieldsTable, dr, !withPreRenderedValues); } var fieldSettingsTable = FieldSettingsController.GetFieldSettingsTable(ModuleId); ds.Tables.Add(fieldSettingsTable); SetEditLinksAndVisibilityBasedOnPermissions(ds); if (withPreRenderedValues) { RenderValuesToHtmlInsideDataSet(ds); } ds.Namespace = "DotNetNuke/UserDefinedTable"; return(ds); }
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"; } }