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();
            }
        }
示例#3
0
 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));
        }
示例#5
0
 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);
            }
        }
示例#7
0
        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();
        }
示例#8
0
        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);
            }
        }
示例#9
0
 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;
示例#12
0
 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);
示例#14
0
 public static bool InlineEditItemIsAllowed(this GridRendererContext rendererContext)
 => rendererContext.GridConfiguration.InlineEditOptions.InlineEditIsAllowed;