Пример #1
0
        private void InjectCustomField(ICustomFieldContainer container, Control customField)
        {
            Panel rowDiv = new Panel();

            rowDiv.CssClass = "row";
            Panel colDiv = new Panel();

            colDiv.CssClass = "col-xs-12"; // Put each custom field on its own row for now. Working out the no of columns already used in a container is fiddly..
            colDiv.Controls.Add(customField);
            rowDiv.Controls.Add(colDiv);
            container.CustomFieldInsertPoint.Controls.Add(rowDiv);
        }
Пример #2
0
        protected virtual void CreateCustomFields()
        {
            if (CustomFields != null)
            {
                foreach (ScreenCustomField field in CustomFields)
                {
                    Control root = this; // this.Parent.ID == "ControlContainer" ? this.Parent.Parent : this;

                    ICustomFieldContainer container = GetControlTree <ICustomFieldContainer>(root).Where(control => control is Control && ((Control)control).ClientID == field.ParentControl).FirstOrDefault();
                    if (container == null)
                    {
                        container = GetControlTree <CustomFieldContainer>(root).FirstOrDefault();
                    }

                    BaseInputControl customField = null;
                    if (container != null)
                    {
                        switch (field.CftypeId)
                        {
                        case "Text":
                            customField = CreateCustomTextField(field);
                            break;

                        case "MultiLine":
                            customField = CreateCustomMultilineField(field);
                            break;

                        case "Checkbox":
                            customField = CreateCustomCheckboxField(field);
                            break;

                        case "Date":
                            customField = CreateCustomDateField(field);
                            break;

                        case "List":
                            customField = CreateCustomListField(field);
                            break;

                        case "Number":
                            customField = CreateCustomNumberField(field);
                            break;

                        case "PopupSearch":
                            customField = CreateCustomPopupField(field);
                            break;
                        }

                        if (customField != null && customField is ICanBeACustomField)
                        {
                            customField.LabelText      = field.Label;
                            customField.ID             = field.Name;
                            customField.DataBoundValue = "_customFields." + field.Name;
                            ((ICanBeACustomField)customField).CustomFieldId = field.Id;
                            ((ICanBeACustomField)customField).IsCustomField = true;

                            InjectCustomField(container, customField);
                        }
                    }
                }
            }
        }