public override void CreateControl(DotvvmControl container, PropertyDisplayMetadata property, DynamicDataContext context) { var textBox = new BusinessPack.Controls.TextBox(); container.Children.Add(textBox); var cssClass = ControlHelpers.ConcatCssClasses(ControlCssClass, property.Styles?.FormControlCssClass); if (!string.IsNullOrEmpty(cssClass)) { textBox.Attributes["class"] = cssClass; } textBox.ValueType = TextBoxHelper.GetValueType(property.PropertyInfo); textBox.FormatString = property.FormatString; textBox.SetBinding(TextBox.TextProperty, context.CreateValueBinding(property.PropertyInfo.Name)); if (property.DataType == DataType.Password) { textBox.Type = TextBoxType.Password; } else if (property.DataType == DataType.MultilineText) { textBox.Type = TextBoxType.MultiLine; } if (textBox.IsPropertySet(DynamicEntity.EnabledProperty)) { ControlHelpers.CopyProperty(textBox, DynamicEntity.EnabledProperty, textBox, TextBox.EnabledProperty); } }
public override void CreateControl(DotvvmControl container, PropertyDisplayMetadata property, DynamicDataContext context) { var comboBox = new ComboBox() { EmptyItemText = GetEmptyItemText(property, context) }; container.Children.Add(comboBox); comboBox.SetBinding(SelectorBase.ItemTextBindingProperty, context.CreateValueBinding(GetDisplayMember(property, context))); comboBox.SetBinding(SelectorBase.ItemValueBindingProperty, context.CreateValueBinding(GetValueMember(property, context))); comboBox.SetBinding(SelectorBase.ItemTextBindingProperty, context.CreateValueBinding(GetDisplayMember(property, context))); comboBox.SetBinding(SelectorBase.ItemValueBindingProperty, context.CreateValueBinding(GetValueMember(property, context))); comboBox.SetBinding(Selector.SelectedValueProperty, context.CreateValueBinding(property.PropertyInfo.Name)); comboBox.SetBinding(ItemsControl.DataSourceProperty, GetDataSourceBinding(property, context, comboBox)); var cssClass = ControlHelpers.ConcatCssClasses(ControlCssClass, property.Styles?.FormControlCssClass); if (!string.IsNullOrEmpty(cssClass)) { comboBox.Attributes["class"] = cssClass; } if (container.IsPropertySet(DynamicEntity.EnabledProperty)) { ControlHelpers.CopyProperty(container, DynamicEntity.EnabledProperty, comboBox, SelectorBase.EnabledProperty); } }
protected override GridViewColumn CreateColumnCore(GridView gridView, PropertyDisplayMetadata property, DynamicDataContext context) { var column = new GridViewCheckBoxColumn(); column.SetBinding(GridViewCheckBoxColumn.ValueBindingProperty, context.CreateValueBinding(property.PropertyInfo.Name)); return(column); }
public GridViewColumn CreateColumn(GridView gridView, PropertyDisplayMetadata property, DynamicDataContext context) { var column = CreateColumnCore(gridView, property, context); column.CssClass = ControlHelpers.ConcatCssClasses(column.CssClass, property.Styles?.GridCellCssClass); column.HeaderCssClass = ControlHelpers.ConcatCssClasses(column.HeaderCssClass, property.Styles?.GridHeaderCellCssClass); return(column); }
protected override GridViewColumn CreateColumnCore(GridView gridView, PropertyDisplayMetadata property, DynamicDataContext context) { var column = new GridViewTextColumn(); column.ValueType = TextBoxHelper.GetValueTypeOrDefault(property.PropertyInfo); column.FormatString = property.FormatString; column.SetBinding(GridViewTextColumn.ValueBindingProperty, context.CreateValueBinding(property.PropertyInfo.Name)); column.IsEditable = property.IsEditAllowed; return(column); }
/// <summary> /// Compiles the DataSource binding expression to a value binding. /// </summary> protected virtual ValueBindingExpression GetDataSourceBinding(PropertyDisplayMetadata property, DynamicDataContext context, ComboBox comboBox) { var dataSourceBindingExpression = GetDataSourceBindingExpression(property, context); if (string.IsNullOrEmpty(dataSourceBindingExpression)) { throw new Exception($"The DataSource binding expression for property {property.PropertyInfo} must be specified!"); } return(context.CreateValueBinding(dataSourceBindingExpression)); }
public override void CreateControl(DotvvmControl container, PropertyDisplayMetadata property, DynamicDataContext context) { var checkBox = new CheckBox(); container.Children.Add(checkBox); var cssClass = ControlHelpers.ConcatCssClasses(ControlCssClass, property.Styles?.FormControlCssClass); if (!string.IsNullOrEmpty(cssClass)) { checkBox.Attributes["class"] = cssClass; } checkBox.Text = property.DisplayName; checkBox.SetBinding(CheckBox.CheckedProperty, context.CreateValueBinding(property.PropertyInfo.Name)); if (checkBox.IsPropertySet(DynamicEntity.EnabledProperty)) { ControlHelpers.CopyProperty(checkBox, DynamicEntity.EnabledProperty, checkBox, CheckableControlBase.EnabledProperty); } }
/// <summary> /// Gets the DisplayMember for the ComboBox control from the ComboBoxSettingsAttribute. /// </summary> protected virtual string GetDisplayMember(PropertyDisplayMetadata property, DynamicDataContext context) { return(GetSettings(property.PropertyInfo)?.DisplayMember); }
/// <summary> /// Gets the EmptyItemText for the ComboBox control from the ComboBoxSettingsAttribute. /// </summary> protected virtual string GetEmptyItemText(PropertyDisplayMetadata property, DynamicDataContext context) { return(GetSettings(property.PropertyInfo)?.EmptyItemText); }
/// <summary> /// Gets the DataSource binding expression for the ComboBox control from the ComboBoxSettingsAttribute. /// </summary> protected virtual string GetDataSourceBindingExpression(PropertyDisplayMetadata property, DynamicDataContext context) { return(GetSettings(property.PropertyInfo)?.DataSourceBinding); }
/// <summary> /// Finds the editor provider for the specified property. /// </summary> protected virtual IFormEditorProvider FindEditorProvider(PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext) { return(dynamicDataContext.DynamicDataConfiguration.FormEditorProviders .FirstOrDefault(e => e.CanHandleProperty(property.PropertyInfo, dynamicDataContext))); }
protected virtual void InitializeControlEditor(HtmlGenericControl formGroup, HtmlGenericControl controlElement, IFormEditorProvider editorProvider, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext) { editorProvider.CreateControl(controlElement, property, dynamicDataContext); }
/// <summary> /// Initializes the validation on the row. /// </summary> protected virtual void InitializeValidation(HtmlGenericControl row, HtmlGenericControl labelCell, HtmlGenericControl editorCell, IFormEditorProvider editorProvider, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext) { if (dynamicDataContext.ValidationMetadataProvider.GetAttributesForProperty(property.PropertyInfo).OfType <RequiredAttribute>().Any()) { labelCell.Attributes["class"] += " dynamicdata-required"; } if (editorProvider.CanValidate) { row.SetValue(Validator.ValueProperty, editorProvider.GetValidationValueBinding(property, dynamicDataContext)); } }
/// <summary> /// Creates the contents of the label cell for the specified property. /// </summary> protected virtual void InitializeControlLabel(HtmlGenericControl row, HtmlGenericControl labelCell, IFormEditorProvider editorProvider, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext) { if (editorProvider.RenderDefaultLabel) { labelCell.Children.Add(new Literal(property.DisplayName)); } }
protected override string GetEmptyItemText(PropertyDisplayMetadata property, DynamicDataContext context) { return(base.GetEmptyItemText(property, context) ?? GetConvention(property, context).Settings.EmptyItemText); }
protected override string GetValueMember(PropertyDisplayMetadata property, DynamicDataContext context) { return(base.GetValueMember(property, context) ?? GetConvention(property, context).Settings.ValueMember); }
protected virtual void InitializeControlEditor(HtmlGenericControl formGroup, HtmlGenericControl controlElement, IFormEditorProvider editorProvider, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext) { editorProvider.CreateControl(controlElement, property, dynamicDataContext); // set CSS classes foreach (var control in controlElement.GetAllDescendants()) { if (control is TextBox || control is ComboBox) { ((HtmlGenericControl)control).Attributes["class"] = "form-control"; } } }
protected virtual void InitializeValidation(HtmlGenericControl formGroup, HtmlGenericControl labelElement, HtmlGenericControl controlElement, IFormEditorProvider editorProvider, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext) { if (dynamicDataContext.ValidationMetadataProvider.GetAttributesForProperty(property.PropertyInfo).OfType <RequiredAttribute>().Any()) { if (labelElement.Attributes.ContainsKey("class")) { labelElement.Attributes["class"] = ControlHelpers.ConcatCssClasses(labelElement.Attributes["class"] as string, "dynamicdata-required"); } else { labelElement.Attributes["class"] = "dynamicdata-required"; } } if (editorProvider.CanValidate) { controlElement.SetValue(DotVVM.Framework.Controls.Validator.ValueProperty, editorProvider.GetValidationValueBinding(property, dynamicDataContext)); } }
protected abstract GridViewColumn CreateColumnCore(GridView gridView, PropertyDisplayMetadata property, DynamicDataContext context);
public ValueBindingExpression GetValidationValueBinding(PropertyDisplayMetadata property, DynamicDataContext context) { return(context.CreateValueBinding(property.PropertyInfo.Name)); }
protected override string GetDataSourceBindingExpression(PropertyDisplayMetadata property, DynamicDataContext context) { return(base.GetDataSourceBindingExpression(property, context) ?? GetConvention(property, context).Settings.DataSourceBinding); }
protected virtual HtmlGenericControl InitializeFormGroup(DotvvmControl hostControl, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext, out HtmlGenericControl labelElement, out HtmlGenericControl controlElement) { var formGroup = new HtmlGenericControl("div"); formGroup.Attributes["class"] = ControlHelpers.ConcatCssClasses(FormGroupCssClass, property.Styles?.FormRowCssClass); hostControl.Children.Add(formGroup); labelElement = new HtmlGenericControl("label"); formGroup.Children.Add(labelElement); controlElement = new HtmlGenericControl("div"); controlElement.Attributes["class"] = ControlHelpers.ConcatCssClasses(property.Styles?.FormControlContainerCssClass); formGroup.Children.Add(controlElement); return(formGroup); }
/// <summary> /// Creates the contents of the editor cell for the specified property. /// </summary> protected virtual void InitializeControlEditor(HtmlGenericControl row, HtmlGenericControl editorCell, IFormEditorProvider editorProvider, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext) { editorProvider.CreateControl(editorCell, property, dynamicDataContext); }
private ComboBoxConvention GetConvention(PropertyDisplayMetadata property, DynamicDataContext context) { return((ComboBoxConvention)context.StateBag[new StateBagKey(this, property.PropertyInfo)]); }
/// <summary> /// Creates the table row for the specified property. /// </summary> protected virtual HtmlGenericControl InitializeTableRow(HtmlGenericControl table, PropertyDisplayMetadata property, DynamicDataContext dynamicDataContext, out HtmlGenericControl labelCell, out HtmlGenericControl editorCell) { var row = new HtmlGenericControl("tr"); row.Attributes["class"] = property.Styles?.FormRowCssClass; table.Children.Add(row); labelCell = new HtmlGenericControl("td"); labelCell.Attributes["class"] = ControlHelpers.ConcatCssClasses("dynamicdata-label", LabelCellCssClass); row.Children.Add(labelCell); editorCell = new HtmlGenericControl("td"); editorCell.Attributes["class"] = ControlHelpers.ConcatCssClasses("dynamicdata-editor", EditorCellCssClass, property.Styles?.FormControlContainerCssClass); row.Children.Add(editorCell); return(row); }
/// <summary> /// Sets the common properties of the grid view column. /// </summary> protected virtual void SetColumnCommonProperties(GridView grid, PropertyDisplayMetadata property, GridViewColumn column, DynamicDataContext dynamicDataContext) { column.HeaderText = property.DisplayName; }
public abstract void CreateControl(DotvvmControl container, PropertyDisplayMetadata property, DynamicDataContext context);
/// <summary> /// Finds the grid column provider. /// </summary> protected virtual IGridColumnProvider FindGridColumnProvider(DynamicDataContext dynamicDataContext, PropertyDisplayMetadata property) { return(dynamicDataContext.DynamicDataConfiguration.GridColumnProviders.FirstOrDefault(p => p.CanHandleProperty(property.PropertyInfo, dynamicDataContext))); }