protected override void BuildRenderTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext)
        {
            rendererContext.OpenElement(HtmlTagNames.TableRow, rendererContext.CssClasses.TableRow);

            var localActualItem = rendererContext.ActualItem;

            rendererContext.AddOnClickEvent(
                EventCallback.Factory.Create(this, (MouseEventArgs e) =>
            {
                rendererContext.TableDataSet
                .GridViewEvents
                .OnItemClicked?.Invoke(new ItemClickedArgs {
                    Item = localActualItem
                });
            }));

            foreach (var property in rendererContext.GridItemProperties)
            {
                rendererContext.ActualColumnName = property.Name;
                rendererContext.ActualColumnPropertyCanBeEdited = property.CanWrite;

                GridPartRenderers.ForEach(renderer => renderer.BuildRendererTree(rendererContext, permissionContext));
            }

            rendererContext.CloseElement();

            GridPartRenderersAfter.ForEach(renderer => renderer.BuildRendererTree(rendererContext, permissionContext));
        }
示例#2
0
        protected override void BuildRenderTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext)
        {
            using (new MeasurableScope(sw => _logger.LogInformation($"Grid rendering duration {sw.ElapsedMilliseconds}ms")))
            {
                try
                {
                    GridPartRenderersBefore.ForEach(renderer => renderer.BuildRendererTree(rendererContext, permissionContext));

                    rendererContext.OpenElement(HtmlTagNames.Div, "table-wrapper");
                    rendererContext.OpenElement(HtmlTagNames.Table, rendererContext.CssClasses.Table);

                    GridPartRenderers.ForEach(renderer => renderer.BuildRendererTree(rendererContext, permissionContext));

                    rendererContext.CloseElement(); // Close table

                    GridPartRenderersAfter.ForEach(renderer => renderer.BuildRendererTree(rendererContext, permissionContext));

                    rendererContext.CloseElement(); // Close table wrapper
                }
                catch (Exception ex)
                {
                    _logger.LogError($"Error raised during rendering GridView component. Ex: {ex}");
                }
            }
        }