|
<SfTab LoadOn="ContentLoad.Demand"> ..... ..... </SfTab> |
|
public class Comp<T> : SfGrid<T> { public async Task RowSelected(Syncfusion.Blazor.Grids.RowSelectEventArgs<T> args) { //perform your action here } //take Grid instance private SfGrid<T> GridRef { get; set; } protected override void BuildRenderTree(RenderTreeBuilder builder) { builder.OpenComponent<SfGrid<T>>(0); builder.AddAttribute(1, nameof(AllowPaging), true); builder.AddAttribute(2, nameof(DataSource), DataSource); builder.AddAttribute(3, "ChildContent", new RenderFragment(inner => { //page settings inner.OpenComponent<GridPageSettings>(5); inner.AddAttribute(6, nameof(GridPageSettings.PageSize), Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<System.Int32>(10)); inner.CloseComponent(); //editsettings inner.OpenComponent<GridEditSettings>(8); inner.AddAttribute(9,"AllowAdding",true); inner.AddAttribute(10, nameof(GridEditSettings.AllowDeleting), Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<bool>(true)); inner.AddAttribute(11, nameof(GridEditSettings.AllowEditing), Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<System.Boolean>(true)); inner.CloseComponent(); . . //grid events inner.OpenComponent<GridEvents<T>>(31); inner.AddAttribute<Syncfusion.Blazor.Grids.RowSelectEventArgs<T>>(32, "RowSelected", EventCallback.Factory.Create<Syncfusion.Blazor.Grids.RowSelectEventArgs<T>>(this, RowSelected)); inner.CloseComponent(); })); builder.AddAttribute(34, nameof(Toolbar), new List<string>() {"Add", "Edit", "Cancel", "Update" }); builder.AddComponentReferenceCapture(35, inst => { GridRef = (SfGrid<T>)inst; }); builder.CloseComponent(); } |
|
<SfTab LoadOn="ContentLoad.Init">
<TabItems> @foreach (TabData Item in TabItems) { <TabItem> <HeaderTemplate> <div>@(Item.Header)</div> </HeaderTemplate> <ContentTemplate> <Comp ID=@(Item.Header) DataSource=GetData(Item.Content)></Comp> </ContentTemplate> </TabItem> } </TabItems> </SfTab> |