private void RenderSortableColumnHeader(GridRendererContext rendererContext, PropertyInfo property, IGridViewColumnAnotations columnConfiguration) { rendererContext.OpenElement(HtmlTagNames.Span, rendererContext.SortingByActualColumnName ? "table-cell-head-sortable table-cell-head-sortable-active" : "table-cell-head-sortable"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, async(MouseEventArgs e) => { await rendererContext.TableDataSet.SetSortExpression(property.Name); rendererContext.RequestRerenderNotification?.Invoke(); }) ); if (rendererContext.SortingByActualColumnName) { var arrowDirection = rendererContext.TableDataSet.SortingOptions.SortDescending ? "fas fa-arrow-down" : "fas fa-arrow-up"; rendererContext.AddContent(GetColumnCaption(columnConfiguration, property)); rendererContext.OpenElement(HtmlTagNames.I, $"table-cell-head-arrow {arrowDirection}"); rendererContext.CloseElement(); } else { rendererContext.AddContent(GetColumnCaption(columnConfiguration, property)); } rendererContext.CloseElement(); }
private void RenderColumnHeader(GridRendererContext rendererContext, PropertyInfo property) { var columnConfiguration = rendererContext.ActualColumnConfiguration; rendererContext.OpenElement(HtmlTagNames.TableHeadCell, rendererContext.CssClasses.TableHeaderCell, GetColumnStyle(columnConfiguration)); rendererContext.OpenElement(HtmlTagNames.Div); rendererContext.AddAttribute(HtmlAttributes.Style, "position: relative;"); if (columnConfiguration == null) { rendererContext.AddContent(GetColumnCaption(columnConfiguration, property)); rendererContext.CloseElement(); rendererContext.CloseElement(); return; } if (columnConfiguration.IsSortable) { RenderSortableColumnHeader(rendererContext, property, columnConfiguration); } else { rendererContext.AddContent(GetColumnCaption(columnConfiguration, property)); } if (columnConfiguration.IsFilterable) { rendererContext.AddFilterComponent(property); } rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderSortableColumnHeader(GridRendererContext rendererContext, PropertyInfo property, IGridViewColumnAnotations columnConfiguration) { rendererContext.OpenElement(HtmlTagNames.TableHeadCell, rendererContext.CssClasses.TableHeaderCell); rendererContext.OpenElement(HtmlTagNames.Span, rendererContext.SortingByActualColumnName ? "table-cell-head-sortable table-cell-head-sortable-active" : "table-cell-head-sortable"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue(async(UIMouseEventArgs e) => await rendererContext.TableDataSet.SetSortExpression(property.Name)) ); if (rendererContext.SortingByActualColumnName) { var arrowDirection = rendererContext.TableDataSet.SortingOptions.SortDescending ? "fas fa-arrow-down" : "fas fa-arrow-up"; rendererContext.AddContent(GetColumnCaption(columnConfiguration, property)); rendererContext.OpenElement(HtmlTagNames.I, $"table-cell-head-arrow {arrowDirection}"); rendererContext.CloseElement(); } else { rendererContext.AddContent(GetColumnCaption(columnConfiguration, property)); } rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderGroupingFooterPart(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.Div, rendererContext.CssClasses.FooterCssClasses.GroupingPartWrapper); rendererContext.OpenElement(HtmlTagNames.Select); rendererContext.AddAttribute(HtmlAttributes.Id, groupingSelectId); rendererContext.AddOnChangeEvent(() => BindMethods.GetEventHandlerValue(async(UIChangeEventArgs e) => { string propertyName = e.Value.ToString(); if (propertyName == noGroupingOptionText) { rendererContext.TableDataSet.GroupingOptions.DeactivateGrouping(); } else { rendererContext.TableDataSet.GroupingOptions.SetGroupedProperty(propertyName); } await rendererContext.TableDataSet.GoToPage(0); rendererContext.RequestRerenderNotification?.Invoke(); }) ); if (!rendererContext.TableDataSet.GroupingOptions.IsGroupingActive) { rendererContext.OpenElement(HtmlTagNames.Option); rendererContext.AddAttribute(HtmlAttributes.Disabled, true); rendererContext.AddContent(groupByPlaceholder); rendererContext.CloseElement(); } else { rendererContext.OpenElement(HtmlTagNames.Option); rendererContext.AddAttribute(HtmlAttributes.Value, string.Empty); rendererContext.AddContent(noGroupingOptionText); rendererContext.CloseElement(); } foreach (var groupableProperty in rendererContext.TableDataSet.GroupingOptions.GroupableProperties) { rendererContext.OpenElement(HtmlTagNames.Option); if (groupableProperty == rendererContext.TableDataSet.GroupingOptions.GroupedProperty) { rendererContext.AddAttribute(HtmlAttributes.Selected, true); } rendererContext.AddAttribute(HtmlAttributes.Value, groupableProperty.Name); rendererContext.ActualColumnName = groupableProperty.Name; var displayedGroupablePropertyName = rendererContext.ActualColumnConfiguration?.Caption ?? groupableProperty.Name; rendererContext.AddContent(displayedGroupablePropertyName); rendererContext.CloseElement(); } rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderGroupingFooterPart(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.Div, rendererContext.CssClasses.FooterCssClasses.GroupingPartWrapper); rendererContext.OpenElement(HtmlTagNames.Select, "group-select"); rendererContext.AddAttribute(HtmlAttributes.Id, GroupingSelectId); rendererContext.AddAttribute(HtmlJsEvents.OnChange, EventCallback.Factory.Create(this, async(ChangeEventArgs e) => { rendererContext.TableDataSet.GroupingOptions.SetGroupedProperty(BindConverterExtensions.ConvertTo(e.Value, string.Empty)); await rendererContext.TableDataSet.GoToPage(0); rendererContext.RequestRerenderNotification?.Invoke(); }) ); if (!rendererContext.TableDataSet.GroupingOptions.IsGroupingActive) { rendererContext.OpenElement(HtmlTagNames.Option); rendererContext.AddAttribute(HtmlAttributes.Disabled, true); rendererContext.AddContent(GroupByPlaceholder); rendererContext.CloseElement(); } foreach (var groupableProperty in rendererContext.TableDataSet.GroupingOptions.GroupableProperties) { rendererContext.OpenElement(HtmlTagNames.Option); if (groupableProperty == rendererContext.TableDataSet.GroupingOptions.GroupedProperty) { rendererContext.AddAttribute(HtmlAttributes.Selected, true); } rendererContext.AddAttribute(HtmlAttributes.Value, groupableProperty.Name); rendererContext.AddContent(rendererContext.GetColumnCaption(groupableProperty.Name) ?? groupableProperty.Name); rendererContext.CloseElement(); } rendererContext.CloseElement(); rendererContext.CloseElement(); if (rendererContext.TableDataSet.GroupingOptions.IsGroupingActive) { rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { rendererContext.TableDataSet.GroupingOptions.DeactivateGrouping(); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-times"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); } }
private void RenderGroupingFooterPart(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.Div, rendererContext.CssClasses.FooterCssClasses.GroupingPartWrapper); rendererContext.OpenElement(HtmlTagNames.Select, "group-select"); rendererContext.AddAttribute(HtmlAttributes.Id, GroupingSelectId); rendererContext.AddOnChangeEvent(() => BindMethods.GetEventHandlerValue(async(UIChangeEventArgs e) => { rendererContext.TableDataSet.GroupingOptions.SetGroupedProperty(e.Value.ToString()); await rendererContext.TableDataSet.GoToPage(0); rendererContext.RequestRerenderNotification?.Invoke(); }) ); if (!rendererContext.TableDataSet.GroupingOptions.IsGroupingActive) { rendererContext.OpenElement(HtmlTagNames.Option); rendererContext.AddAttribute(HtmlAttributes.Disabled, true); rendererContext.AddContent(GroupByPlaceholder); rendererContext.CloseElement(); } foreach (var groupableProperty in rendererContext.TableDataSet.GroupingOptions.GroupableProperties) { rendererContext.OpenElement(HtmlTagNames.Option); if (groupableProperty == rendererContext.TableDataSet.GroupingOptions.GroupedProperty) { rendererContext.AddAttribute(HtmlAttributes.Selected, true); } rendererContext.AddAttribute(HtmlAttributes.Value, groupableProperty.Name); rendererContext.AddContent(rendererContext.GetColumnCaption(groupableProperty.Name) ?? groupableProperty.Name); rendererContext.CloseElement(); } rendererContext.CloseElement(); rendererContext.CloseElement(); if (rendererContext.TableDataSet.GroupingOptions.IsGroupingActive) { rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => { rendererContext.TableDataSet.GroupingOptions.DeactivateGrouping(); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-times"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); } }
protected override void BuildRendererTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { rendererContext.AddContent(" "); rendererContext.OpenElement("p"); rendererContext.OpenElement("em"); rendererContext.AddContent("Loading..."); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.AddContent("\n"); }
public override void Render(GridRendererContext rendererContext) { if (rendererContext.TableDataSet.HasItems()) { return; } rendererContext.AddContent(" "); rendererContext.OpenElement("p"); rendererContext.OpenElement("em"); rendererContext.AddContent("Loading..."); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.AddContent("\n"); }
protected override void BuildRendererTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { var nextButtonIsDisabled = rendererContext.TableDataSet.PageableOptions.IsLastPage; var previousButtonIsDisabled = rendererContext.TableDataSet.PageableOptions.IsFirstPage; //rendererContext.OpenElement(HtmlTagNames.Div, "pagination-wrapper"); rendererContext.OpenElement(HtmlTagNames.Div, rendererContext.CssClasses.FooterCssClasses.FooterWrapper); if (rendererContext.TableDataSet.GroupingOptions.IsGroupingEnabled) { RenderGroupingFooterPart(rendererContext); } rendererContext.OpenElement(HtmlTagNames.Div, "pagination-right"); rendererContext.CloseElement(); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-page-status"); rendererContext.AddContent($"{rendererContext.TableDataSet.PageInfoText()} of {rendererContext.TableDataSet.PageableOptions.TotalItemsCount}"); rendererContext.CloseElement(); rendererContext.OpenElement(HtmlTagNames.Div, "pagination-buttons-wrapper"); RenderButton(rendererContext, PaginationButtonType.First, previousButtonIsDisabled, "fas fa-angle-double-left"); RenderButton(rendererContext, PaginationButtonType.Previous, previousButtonIsDisabled, "fas fa-angle-left"); RenderButton(rendererContext, PaginationButtonType.Next, nextButtonIsDisabled, "fas fa-angle-right"); RenderButton(rendererContext, PaginationButtonType.Last, nextButtonIsDisabled, "fas fa-angle-double-right"); rendererContext.CloseElement(); rendererContext.CloseElement(); //rendererContext.CloseElement(); }
private void RenderTab( GridRendererContext rendererContext, IMasterTableDataSet masterTableDataSet, ITableDataAdapter selectedDataAdapter, ITableDataAdapter dataAdapter) { var masterDetailRelationship = rendererContext .GridConfiguration .FindRelationshipConfiguration(dataAdapter.UnderlyingTypeOfItem); var localActualItem = rendererContext.ActualItem; rendererContext.OpenElement(HtmlTagNames.Button, selectedDataAdapter.IsForSameUnderlyingType(dataAdapter) ? "tabs-button tabs-button-active" : "tabs-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { masterTableDataSet.SelectDataAdapter(new MasterDetailRowArguments(dataAdapter, localActualItem)); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "tabs-button-text"); rendererContext.AddContent(masterDetailRelationship.DetailGridViewPageCaption(dataAdapter)); rendererContext.CloseElement(); rendererContext.CloseElement(); }
public override void Render(GridRendererContext rendererContext) { if (!rendererContext.TableDataSet.HasItems()) { return; } var nextButtonIsDisabled = rendererContext.TableDataSet.PageableOptions.IsLastPage; var previousButtonIsDisabled = rendererContext.TableDataSet.PageableOptions.IsFirstPage; rendererContext.OpenElement(HtmlTagNames.Div, "pagination-wrapper"); rendererContext.OpenElement(HtmlTagNames.Div, "pagination-wrapper-inner"); rendererContext.OpenElement(HtmlTagNames.Div, "pagination-right"); rendererContext.CloseElement(); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-page-status"); rendererContext.AddContent($"{rendererContext.TableDataSet.PageInfoText()} of {rendererContext.TableDataSet.PageableOptions.TotalItemsCount}"); rendererContext.CloseElement(); rendererContext.OpenElement(HtmlTagNames.Div, "pagination-buttons-wrapper"); RenderButton(rendererContext, PaginationButtonType.First, previousButtonIsDisabled, "fas fa-angle-double-left"); RenderButton(rendererContext, PaginationButtonType.Previous, previousButtonIsDisabled, "fas fa-angle-left"); RenderButton(rendererContext, PaginationButtonType.Next, nextButtonIsDisabled, "fas fa-angle-right"); RenderButton(rendererContext, PaginationButtonType.Last, nextButtonIsDisabled, "fas fa-angle-double-right"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderTab( GridRendererContext rendererContext, IMasterTableDataSet masterTableDataSet, ITableDataAdapter selectedDataAdapter, ITableDataAdapter dataAdapter) { var masterDetailRelationship = rendererContext .GridConfiguration .FindRelationshipConfiguration(dataAdapter.UnderlyingTypeOfItem); var localActualItem = rendererContext.ActualItem; rendererContext.OpenElement(HtmlTagNames.Button, selectedDataAdapter.IsForSameUnderlyingType(dataAdapter) ? "tabs-button tabs-button-active" : "tabs-button"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => masterTableDataSet.SelectDataAdapter(new MasterDetailRowArguments(dataAdapter, localActualItem))) ); rendererContext.OpenElement(HtmlTagNames.Span, "tabs-button-text"); rendererContext.AddContent(masterDetailRelationship.DetailGridViewPageCaption(dataAdapter)); rendererContext.CloseElement(); rendererContext.CloseElement(); }
protected override void BuildRenderTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { using (new MeasurableScope(sw => logger.LogInformation($"Grid grouped body rendering duration {sw.ElapsedMilliseconds}ms"))) { rendererContext.OpenElement(HtmlTagNames.TableBody, rendererContext.CssClasses.TableBody); foreach (var group in rendererContext.TableDataSet.GroupedItems) { try { rendererContext.OpenElement(HtmlTagNames.TableRow, rendererContext.CssClasses.TableGroupRow); rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableGroupRowCell); rendererContext.AddAttribute(HtmlAttributes.Colspan, rendererContext.NumberOfColumns); rendererContext.OpenElement(HtmlTagNames.Button, "pagination-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { rendererContext.TableDataSet.ToggleGroupRow(group.Key); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, !group.IsCollapsed ? "fas fa-angle-down" : "fas fa-angle-right"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.AddMarkupContent($"\t<b>{rendererContext.TableDataSet.GroupingOptions.GroupedProperty.Name}:</b> {group.Key.ToString()}\t"); rendererContext.OpenElement(HtmlTagNames.I); rendererContext.AddContent($"({group.Count})"); rendererContext.CloseElement(); if (!group.IsCollapsed) { var dataAdapter = tableDataAdapterProvider.CreateCollectionTableDataAdapter(rendererContext.TableDataSet.UnderlyingTypeOfItem(), group); var masterTableFeature = rendererContext.FlexGridContext.Features.Get <IMasterTableFeature>(); dataAdapter = tableDataAdapterProvider.CreateMasterTableDataAdapter(dataAdapter, masterTableFeature); rendererContext.AddGridViewComponent(dataAdapter); } rendererContext.CloseElement(); rendererContext.CloseElement(); } catch (Exception ex) { logger.LogError($"Error occured during rendering grouped grid view body. Ex: {ex}"); throw ex; } } rendererContext.CloseElement(); } }
protected override void BuildRendererTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { if (!permissionContext.HasCreateItemPermission) { return; } rendererContext.OpenElement(HtmlTagNames.Div, "modal"); rendererContext.AddAttribute(HtmlAttributes.Id, CreateItemOptions.CreateItemModalName); rendererContext.AddAttribute("role", "dialog"); rendererContext.OpenElement(HtmlTagNames.Div, "modal-dialog modal-lg modal-dialog-centered"); rendererContext.OpenElement(HtmlTagNames.Div, "modal-content"); rendererContext.OpenElement(HtmlTagNames.Div, "modal-header"); rendererContext.OpenElement(HtmlTagNames.H4, "modal-title"); rendererContext.AddContent("Create Item"); rendererContext.CloseElement(); rendererContext.OpenElement(HtmlTagNames.Button, "close"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => FlexGridInterop.HideModal(CreateItemOptions.CreateItemModalName))); rendererContext.AddAttribute(HtmlAttributes.Type, "button"); rendererContext.AddAttribute("data-dismiss", "modal"); rendererContext.AddAttribute("aria-label", "Close"); rendererContext.OpenElement(HtmlTagNames.Span); rendererContext.AddAttribute(HtmlAttributes.AriaHidden, "true"); rendererContext.AddContent("×"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.OpenElement(HtmlTagNames.Div, "modal-body"); rendererContext.AddCreateItemComponent(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
protected override void RenderInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { var localActualItem = rendererContext.ActualItem; var localActualItemIsSelected = rendererContext.TableDataSet.ItemIsSelected(localActualItem); rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableCell); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => rendererContext.TableDataSet.ToggleRowItem(localActualItem)) ); rendererContext.AddContent(string.Empty); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, localActualItemIsSelected ? "fas fa-angle-down" : "fas fa-angle-right"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
public override void Render(GridRendererContext rendererContext) { if (!rendererContext.IsFirstColumn || !rendererContext.GridConfiguration.IsMasterTable) { return; } var localActualItem = rendererContext.ActualItem; rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableCell); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs async) => { rendererContext.TableDataSet.ToggleRowItem(localActualItem); })); rendererContext.AddContent(">"); rendererContext.CloseElement(); }
protected override void BuildRendererTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { var localActualItem = rendererContext.ActualItem; var localActualItemIsSelected = rendererContext.TableDataSet.ItemIsSelected(localActualItem); rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableCell); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { rendererContext.TableDataSet.ToggleRowItem(localActualItem); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.AddContent(string.Empty); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, localActualItemIsSelected ? "fas fa-angle-down" : "fas fa-angle-right"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
protected override void BuildRendererTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { if (rendererContext.TableDataSet.FilterIsApplied) { rendererContext.OpenElement(HtmlTagNames.TableRow); rendererContext.OpenElement(HtmlTagNames.TableColumn); rendererContext.AddAttribute(HtmlAttributes.Colspan, rendererContext.NumberOfColumns); rendererContext.OpenElement(HtmlTagNames.Div, "table-info-text"); rendererContext.OpenElement(HtmlTagNames.Span); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-search"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.AddMarkupContent("\t No matching items found"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); return; } if (!rendererContext.FlexGridContext.FirstPageLoaded) { rendererContext.OpenElement(HtmlTagNames.Div, "table-info-text table-info-text-small"); rendererContext.AddContent("Loading..."); rendererContext.CloseElement(); } else { rendererContext.OpenElement(HtmlTagNames.TableRow); rendererContext.OpenElement(HtmlTagNames.TableColumn); rendererContext.AddAttribute(HtmlAttributes.Colspan, rendererContext.NumberOfColumns); rendererContext.OpenElement(HtmlTagNames.Div, "table-info-text"); rendererContext.AddEmptyItemsMessage(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); } }
public override void Render(GridRendererContext rendererContext) { if (!rendererContext.IsFirstColumn || !rendererContext.GridConfiguration.IsMasterTable) { return; } var localActualItem = rendererContext.ActualItem; var localActualItemIsSelected = rendererContext.TableDataSet.ItemIsSelected(localActualItem); rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableCell); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => rendererContext.TableDataSet.ToggleRowItem(localActualItem)) ); rendererContext.AddContent(string.Empty); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, localActualItemIsSelected ? "fas fa-angle-down" : "fas fa-angle-right"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderSimpleColumnHeader(GridRendererContext rendererContext, PropertyInfo property, IGridViewColumnAnotations columnConfiguration) { rendererContext.OpenElement(HtmlTagNames.TableHeadCell, rendererContext.CssClasses.TableHeaderCell); rendererContext.AddContent(GetColumnCaption(columnConfiguration, property)); rendererContext.CloseElement(); }
protected override void BuildRenderTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { var actualGroupItem = (GroupItem)rendererContext.ActualItem; bool isCollapsed = actualGroupItem.IsCollapsed; rendererContext.OpenElement(HtmlTagNames.TableBody, isCollapsed? "table-group-row-wrapper-collapsed" : "table-group-row-wrapper"); try { rendererContext.OpenElement(HtmlTagNames.TableRow, rendererContext.CssClasses.TableGroupRow); rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableGroupRowCell); int numberOfColumns = rendererContext.GridItemProperties.Count; if (rendererContext.GridConfiguration.InlineEditOptions.InlineEditIsAllowed) { numberOfColumns++; } if (rendererContext.GridConfiguration.IsMasterTable) { numberOfColumns++; } rendererContext.AddAttribute(HtmlAttributes.Colspan, numberOfColumns); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => { rendererContext.TableDataSet.ToggleGroupRow(actualGroupItem.Key); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.I, !isCollapsed ? "fas fa-angle-down" : "fas fa-angle-right"); rendererContext.CloseElement(); var keyProperty = rendererContext.ActualItem.GetType().GetProperty("Key"); var keyValue = keyProperty != null?keyProperty.GetValue(rendererContext.ActualItem) : null; var key = keyValue != null?keyValue.ToString() : "(null)"; if (string.IsNullOrEmpty(key)) { key = @""""; } rendererContext.AddContent($" {key} "); rendererContext.OpenElement(HtmlTagNames.I); rendererContext.AddContent($"({actualGroupItem.Count})"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); var subItems = (IEnumerable)(GroupItem)rendererContext.ActualItem; foreach (var item in subItems) { rendererContext.ActualItem = item; gridPartRenderers.ForEach(renderer => renderer.BuildRendererTree(rendererContext, permissionContext)); } } catch (Exception ex) { throw ex; } rendererContext.CloseElement(); }