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 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(); }
private void RenderDeleteButton(GridRendererContext rendererContext, PermissionContext permissionContext) { if (!permissionContext.HasDeleteItemPermission || !rendererContext.GridConfiguration.InlineEditOptions.AllowDeleting) { return; } var localActualItem = rendererContext.ActualItem; rendererContext.OpenElement(HtmlTagNames.Div, "action-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { if (rendererContext.GridConfiguration.DeleteItemOptions.UseConfirmationDialog) { rendererContext.FlexGridContext.SelectItem(localActualItem); flexGridInterop.ShowModal(DeleteItemOptions.DialogName); } else { rendererContext.TableDataSet.DeleteItem(localActualItem); rendererContext.RequestRerenderNotification?.Invoke(); } }) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-trash-alt"); rendererContext.CloseElement(); 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 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(); }
private void RenderDeleteButton(GridRendererContext rendererContext, PermissionContext permissionContext) { if (!permissionContext.HasDeleteItemPermission || !rendererContext.GridConfiguration.InlineEditOptions.AllowDeleting) { return; } var localActualItem = rendererContext.ActualItem; rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => { rendererContext.TableDataSet.DeleteItem(localActualItem); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-trash-alt"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
protected override void BuildRenderTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { rendererContext.OpenElement(HtmlTagNames.TableRow, rendererContext.CssClasses.TableRow); var localActualItem = rendererContext.ActualItem; rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs 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)); }
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 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(); } }
private void RenderSaveButton(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => rendererContext.TableDataSet.SaveItem(rendererContext.PropertyValueAccessor)) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-save"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderDiscardButton(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => rendererContext.TableDataSet.CancelEditation()) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-times"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderButton(GridRendererContext rendererContext, PaginationButtonType buttonType, bool disabled, string buttonArrowClass) { rendererContext.OpenElement(HtmlTagNames.Button, !disabled ? "pagination-button" : "pagination-button pagination-button-disabled"); rendererContext.AddDisabled(disabled); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue(async(UIMouseEventArgs e) => await GetPaginationTask(rendererContext, buttonType)) ); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, buttonArrowClass); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderEditButton(GridRendererContext rendererContext) { var localActualItem = rendererContext.ActualItem; rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => rendererContext.TableDataSet.StartEditItem(localActualItem)) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-edit"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderSaveButton(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.Div, "action-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { rendererContext.TableDataSet.SaveItem(rendererContext.PropertyValueAccessor); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-save"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderDiscardButton(GridRendererContext rendererContext) { rendererContext.OpenElement(HtmlTagNames.Div, "action-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { rendererContext.TableDataSet.CancelEditation(); 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 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(); }
private void BuildCreateItemButtonRendererTree(GridRendererContext rendererContext, PermissionContext permissionContext) { rendererContext.OpenElement(HtmlTagNames.TableHeadCell, rendererContext.CssClasses.TableHeaderCell); rendererContext.OpenElement(HtmlTagNames.Div, "create-button-wrapper"); rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => FlexGridInterop.ShowModal(CreateItemOptions.CreateItemModalName)) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-plus"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
protected override void BuildRendererTreeInternal(GridRendererContext rendererContext, PermissionContext permissionContext) { rendererContext.OpenElement(HtmlTagNames.TableColumn, rendererContext.CssClasses.TableCell); if (!rendererContext.IsActualItemEdited) { var localActualItem = rendererContext.ActualItem; rendererContext.AddOnClickEvent( () => BindMethods.GetEventHandlerValue((UIMouseEventArgs e) => { rendererContext.TableDataSet .GridViewEvents .OnItemClicked?.Invoke(new ItemClickedArgs { Item = localActualItem }); }) ); } if (!rendererContext.IsActualItemEdited) { rendererContext.AddActualColumnValue(permissionContext); rendererContext.CloseElement(); return; } if (rendererContext.ActualColumnPropertyCanBeEdited && permissionContext.HasCurrentUserWritePermission(rendererContext.ActualColumnName)) { editInputRendererTree.BuildInputRendererTree( rendererContext.RendererTreeBuilder, rendererContext, rendererContext.TableDataSet.EditItemProperty); } else { rendererContext.AddActualColumnValue(permissionContext); } rendererContext.CloseElement(); }
private void BuildCreateItemButtonRendererTree(GridRendererContext rendererContext, PermissionContext permissionContext) { rendererContext.OpenElement(HtmlTagNames.TableHeadCell, rendererContext.CssClasses.TableHeaderCell); rendererContext.OpenElement(HtmlTagNames.Div, "create-button-wrapper"); rendererContext.OpenElement(HtmlTagNames.Button, "action-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => flexGridInterop.ShowModal(CreateItemOptions.CreateItemModalName)) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-plus"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderEditButton(GridRendererContext rendererContext) { var localActualItem = rendererContext.ActualItem; rendererContext.OpenElement(HtmlTagNames.Div, "action-button"); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, (MouseEventArgs e) => { rendererContext.TableDataSet.StartEditItem(localActualItem); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "action-button-span"); rendererContext.OpenElement(HtmlTagNames.I, "fas fa-edit"); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderButton(GridRendererContext rendererContext, PaginationButtonType buttonType, bool disabled, string buttonArrowClass) { rendererContext.OpenElement(HtmlTagNames.Button, !disabled ? rendererContext.CssClasses.FooterCssClasses.PaginationButton : rendererContext.CssClasses.FooterCssClasses.PaginationButtonDisabled); rendererContext.AddDisabled(disabled); rendererContext.AddOnClickEvent( EventCallback.Factory.Create(this, async(MouseEventArgs e) => { await GetPaginationTask(rendererContext, buttonType); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, buttonArrowClass); rendererContext.CloseElement(); rendererContext.CloseElement(); rendererContext.CloseElement(); }
private void RenderButton(GridRendererContext rendererContext, PaginationButtonType buttonType, bool disabled, string buttonArrowClass) { rendererContext.OpenElement(HtmlTagNames.Button, !disabled ? rendererContext.CssClasses.FooterCssClasses.PaginationButton : rendererContext.CssClasses.FooterCssClasses.PaginationButtonDisabled); rendererContext.AddDisabled(disabled); rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue(async(UIMouseEventArgs e) => { await GetPaginationTask(rendererContext, buttonType); rendererContext.RequestRerenderNotification?.Invoke(); }) ); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, buttonArrowClass); rendererContext.CloseElement(); rendererContext.CloseElement(); 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 (!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(); }
private void RenderButton(GridRendererContext rendererContext, PaginationButtonType buttonType, bool disabled, string buttonArrowClass) { rendererContext.OpenElement(HtmlTagNames.Button, !disabled ? "pagination-button" : "pagination-button pagination-button-disabled"); rendererContext.AddDisabled(disabled); // This is not good but when click function is passed as parameter every button // Have seme on click events rendererContext.AddOnClickEvent(() => BindMethods.GetEventHandlerValue((UIMouseEventArgs async) => buttonType == PaginationButtonType.Previous ? rendererContext.TableDataSet.GoToPreviousPage() : buttonType == PaginationButtonType.Next ? rendererContext.TableDataSet.GoToNextPage() : buttonType == PaginationButtonType.First ? rendererContext.TableDataSet.GoToFirstPage() : rendererContext.TableDataSet.GoToLastPage())); rendererContext.OpenElement(HtmlTagNames.Span, "pagination-button-arrow"); rendererContext.OpenElement(HtmlTagNames.I, buttonArrowClass); 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(); }
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(); }