public override void RenderInput(GridRendererContext gridRendererContext) { var localColumnName = gridRendererContext.ActualColumnName; var value = gridRendererContext.PropertyValueAccessor.GetValue(gridRendererContext.ActualItem, localColumnName); if (IsSupportedDateType(value)) { var dateTimeValue = ConvertToDateTime(value); var dateValueContatinsTime = dateTimeValue.TimeOfDay.TotalSeconds != 0; var dateFormat = dateValueContatinsTime ? "yyyy-MM-dd'T'HH:mm:ss" : "yyyy-MM-dd"; gridRendererContext.OpenElement(HtmlTagNames.Div, "edit-field-wrapper"); gridRendererContext.OpenElement(HtmlTagNames.Input, "edit-text-field"); gridRendererContext.AddAttribute(HtmlAttributes.Type, dateValueContatinsTime ? "datetime-local" : "date"); gridRendererContext.AddAttribute(HtmlAttributes.Value, BindMethods.GetValue(dateTimeValue, dateFormat)); gridRendererContext.AddAttribute(HtmlJSEvents.OnChange, BindMethods.SetValueHandler(delegate(DateTime __value) { gridRendererContext .TableDataSet .EditItemProperty(localColumnName, __value); }, dateTimeValue, dateFormat) ); gridRendererContext.CloseElement(); gridRendererContext.CloseElement(); } else { successor.RenderInput(gridRendererContext); } }
protected override void BuildRenderTree(RenderTreeBuilder builder) { base.BuildRenderTree(builder); var rendererTreeBuilder = new BlazorRendererTreeBuilder(builder); var gridContexts = RendererContextFactory.CreateContexts(tableDataSet); RenderFragment <ImutableGridRendererContext> grid = (ImutableGridRendererContext imutableGridRendererContext) => delegate(RenderTreeBuilder internalBuilder) { var gridRendererContext = new GridRendererContext(gridContexts.ImutableRendererContext, new BlazorRendererTreeBuilder(internalBuilder), tableDataSet); GridRendererTreeBuilder.BuildRendererTree(gridRendererContext, gridContexts.PermissionContext); }; rendererTreeBuilder .OpenComponent(typeof(GridViewTable)) .AddAttribute(nameof(ImutableGridRendererContext), gridContexts.ImutableRendererContext) .AddAttribute(RenderTreeBuilder.ChildContent, grid) .CloseComponent(); if (gridContexts.ImutableRendererContext.CreateItemIsAllowed()) { rendererTreeBuilder .OpenComponent(typeof(CreateItemModal)) .AddAttribute(nameof(CreateItemOptions), gridContexts.ImutableRendererContext.GridConfiguration.CreateItemOptions) .AddAttribute(nameof(PermissionContext), gridContexts.PermissionContext) .AddAttribute(nameof(CreateFormCssClasses), gridContexts.ImutableRendererContext.CssClasses.CreateFormCssClasses) .AddAttribute(nameof(NewItemCreated), NewItemCreated) .CloseComponent(); } }
private void AddDoubleValueHandlerIfValueIsDouble(GridRendererContext gridRendererContext, string localColumnName, object value) { if (value is double doubleValue) { gridRendererContext.AddAttribute(HtmlJSEvents.OnChange, BindMethods.SetValueHandler(delegate(double __value) { gridRendererContext .TableDataSet .EditItemProperty(localColumnName, __value); }, doubleValue) ); } }
public override void Render(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.TableRow, rendererContext.CssClasses.TableRow); foreach (var property in rendererContext.GridItemProperties) { rendererContext.ActualColumnName = property.Name; gridPartRenderers.ForEach(renderer => renderer.Render(rendererContext)); } rendererContext.CloseElement(); gridPartRenderersAfter.ForEach(renderer => renderer.Render(rendererContext)); }
private void AddLongValueHandlerIfValueIsLong(GridRendererContext gridRendererContext, string localColumnName, object value) { if (value is long longValue) { gridRendererContext.AddAttribute(HtmlJSEvents.OnChange, BindMethods.SetValueHandler(delegate(long __value) { gridRendererContext .TableDataSet .EditItemProperty(localColumnName, __value); }, longValue) ); } else { AddDecimalValueHandlerIfValueIsDecimal(gridRendererContext, localColumnName, value); } }
public override void RenderInput(GridRendererContext gridRendererContext) { var localColumnName = gridRendererContext.ActualColumnName; var value = gridRendererContext.PropertyValueAccessor.GetValue(gridRendererContext.ActualItem, localColumnName); if (value is Enum enumTypeValue) { var actualStringValue = enumTypeValue.ToString(); gridRendererContext.OpenElement(HtmlTagNames.Div, "edit-field-wrapper"); gridRendererContext.OpenElement(HtmlTagNames.Select, "edit-text-field"); gridRendererContext.AddAttribute(HtmlJSEvents.OnChange, BindMethods.SetValueHandler(delegate(string __value) { var parsedValue = Enum.Parse(value.GetType(), __value); gridRendererContext .TableDataSet .EditItemProperty(localColumnName, parsedValue); }, value.ToString()) ); foreach (var enumValue in Enum.GetValues(enumTypeValue.GetType())) { var enumStringValue = enumValue.ToString(); gridRendererContext.OpenElement(HtmlTagNames.Option); if (enumStringValue == actualStringValue) { gridRendererContext.AddAttribute(HtmlAttributes.Selected, true); } gridRendererContext.AddAttribute(HtmlAttributes.Value, enumStringValue); gridRendererContext.AddContent(enumStringValue); gridRendererContext.CloseElement(); } gridRendererContext.CloseElement(); gridRendererContext.CloseElement(); } else { successor.RenderInput(gridRendererContext); } }
public override void RenderInput(GridRendererContext gridRendererContext) { var localColumnName = gridRendererContext.ActualColumnName; var value = gridRendererContext.PropertyValueAccessor.GetValue(gridRendererContext.ActualItem, gridRendererContext.ActualColumnName); gridRendererContext.OpenElement(HtmlTagNames.Div, "edit-field-wrapper"); gridRendererContext.OpenElement(HtmlTagNames.Input, "edit-text-field"); gridRendererContext.AddAttribute(HtmlAttributes.Type, GetInputType(value.ToString())); gridRendererContext.AddAttribute(HtmlAttributes.Value, BindMethods.GetValue(value)); gridRendererContext.AddAttribute(HtmlJSEvents.OnChange, BindMethods.SetValueHandler(delegate(string __value) { gridRendererContext .TableDataSet .EditItemProperty(localColumnName, __value); }, value.ToString()) ); gridRendererContext.CloseElement(); gridRendererContext.CloseElement(); }
public override void RenderInput(GridRendererContext gridRendererContext) { var localColumnName = gridRendererContext.ActualColumnName; var value = gridRendererContext.PropertyValueAccessor.GetValue(gridRendererContext.ActualItem, localColumnName); if (IsSupportedNumberType(value)) { gridRendererContext.OpenElement(HtmlTagNames.Div, "edit-field-wrapper"); gridRendererContext.OpenElement(HtmlTagNames.Input, "edit-text-field"); gridRendererContext.AddAttribute(HtmlAttributes.Type, "number"); gridRendererContext.AddAttribute(HtmlAttributes.Value, BindMethods.GetValue(value)); TryAddOnChangeHandler(gridRendererContext, localColumnName, value); gridRendererContext.CloseElement(); gridRendererContext.CloseElement(); } else { successor.RenderInput(gridRendererContext); } }
abstract public void RenderInput(GridRendererContext gridRendererContext);
public static bool CreateItemIsAllowed(this GridRendererContext rendererContext) => rendererContext.GridConfiguration.CreateItemOptions.IsCreateItemAllowed;
public static bool ShowExplicitDetailTables(this GridRendererContext rendererContext) => rendererContext.GridConfiguration.MasterDetailOptions.OnlyShowExplicitDetailTables;
public override void Render(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableCell); rendererContext.AddActualColumnValue(); rendererContext.CloseElement(); }
public override void RenderInput(GridRendererContext gridRendererContext) => rendererTree.RenderInput(gridRendererContext);
public static bool InlineEditItemIsAllowed(this GridRendererContext rendererContext) => rendererContext.GridConfiguration.InlineEditOptions.InlineEditIsAllowed;