private void AddControl(ControlCollection container, ContentRepository.Field field) { var control = GenericFieldControl.CreateDefaultFieldControl(field); control.ID = String.Concat("Generic", _id++); var fv = GenericFieldControl.GetFieldVisibility(ViewMode, field); if (fv == FieldVisibility.Advanced && AdvancedPanel != null) { AdvancedPanel.Controls.Add(control); } else { container.Add(control); } }
protected override void OnViewInitialize() { this.ViewControlFrameMode = FieldControlFrameMode.ShowFrame; ControlCollection container; var c = this.FindControl("GenericControls") ?? this; try { var ivc = c.FindControl("InlineViewContent"); if (ivc == null) { return; } container = ivc.Controls; // c.Controls; container.Clear(); var fields = this.Content.Fields; _id = 0; var fieldNames = GenericFieldControl.GetVisibleFieldNames(this.Content, ViewMode); // name and urlname comes first var nameField = fieldNames.Where(f => f == "DisplayName").FirstOrDefault(); if (nameField != null) { var field = fields[nameField]; AddControl(container, field); } var urlNameField = fieldNames.Where(f => f == "Name").FirstOrDefault(); if (urlNameField != null) { var field = fields[urlNameField]; AddControl(container, field); } // add the rest foreach (var fieldName in fieldNames) { if (fieldName == "Name" || fieldName == "DisplayName") { continue; } var field = fields[fieldName]; AddControl(container, field); } if (AdvancedPanel != null && AdvancedPanel.Controls.Count > 0) { var advancedButton = Page.LoadControl("/Root/System/SystemPlugins/Controls/AdvancedPanelButton.ascx") as AdvancedPanelButton; if (advancedButton != null) { container.Add(advancedButton); container.Add(AdvancedPanel); advancedButton.AdvancedPanel = AdvancedPanel; } } } catch (Exception ex) { Logger.WriteException(ex); } }
private object[] DefaultValueTest(string[][] data) { var result = new List <object>(); var defaultStrings = new string[fieldNames.Count]; //var expectedValues = new string[fieldNames.Count]; foreach (var record in data) { //new string[]{"ShortTextField", "Default short text value.", "Default short text value."}, string fieldName = record[0]; int fieldIndex = fieldNames.IndexOf(fieldName); defaultStrings[fieldIndex] = String.Concat("<DefaultValue>", record[1], "</DefaultValue>"); //expectedValues[fieldIndex] = record[2]; } //---- var ctd = String.Format(ctdFormat, defaultStrings); ContentTypeInstaller.InstallContentType(ctd); //---- var contentTypeName = "DefaultValueTesterContentType"; var contentType = ContentType.GetByName(contentTypeName); //==== create a new Content var newContent = Content.CreateNew(contentTypeName, _testRoot, "Content1"); object fieldValue; for (int i = 0; i < data.Length; i++) { var record = data[i]; string fieldName = record[0]; var field = newContent.Fields[fieldName]; try { //==== simulating contentview: //-- create control FieldControl control = GenericFieldControl.CreateDefaultFieldControl(field); var controlAcc = new FieldControlAccessor(control); //-- RegisterFieldControl controlAcc.ConnectToField(field); //-- SetData controlAcc.SetDataInternal(); //-- Post default value field.SetData(control.GetData()); //-- check posted value fieldValue = newContent[fieldName]; result.Add(fieldValue); } catch (Exception e) { Exception ee = e; StringBuilder sb = new StringBuilder(); while (ee != null) { sb.Append(ee.Message); ee = ee.InnerException; } result.Add(String.Concat(fieldName, "{Exception:\"", sb.ToString(), "\"}")); } } return(result.ToArray()); }
protected override void OnViewInitialize() { this.ViewControlFrameMode = FieldControlFrameMode.ShowFrame; ControlCollection container; var c = this.FindControl("GenericControls") ?? this; try { var ivc = c.FindControl("InlineViewContent"); if (ivc == null) { return; } container = ivc.Controls; // c.Controls; container.Clear(); var fields = this.Content.Fields; _id = 0; var fieldNames = GenericFieldControl.GetVisibleFieldNames(this.Content, ViewMode); // name and urlname comes first var nameField = fieldNames.Where(f => f == "DisplayName").FirstOrDefault(); if (nameField != null) { var field = fields[nameField]; AddControl(container, field); } var urlNameField = fieldNames.Where(f => f == "Name").FirstOrDefault(); if (urlNameField != null) { var field = fields[urlNameField]; AddControl(container, field); } // add the rest foreach (var fieldName in fieldNames) { if (fieldName == "Name" || fieldName == "DisplayName") { continue; } var field = fields[fieldName]; AddControl(container, field); } if (AdvancedPanel != null && AdvancedPanel.Controls.Count > 0) { var controlPath = string.Empty; // Try to load the control from under the skin. // If it is not found there, the fallback is the old global path. if (!SkinManager.TryResolve(SkinControlPath, out controlPath)) { controlPath = GlobalControlPath; } var advancedButton = Page.LoadControl(controlPath) as AdvancedPanelButton; if (advancedButton != null) { container.Add(advancedButton); container.Add(AdvancedPanel); advancedButton.AdvancedPanel = AdvancedPanel; } } } catch (Exception ex) { SnLog.WriteException(ex); } }