<SfProgressBar ID="ProgressBar" ... Value="@Progressvalue">
...
</SfProgressBar>
<SfGrid ID="Grid" DataSource="@Orders" AllowPaging="true">
<GridEvents DataBound="DataBound" Created="Created" TValue="Order"></GridEvents>
...
</SfGrid>
public void DataBound()
{
Progressvalue = 100;
}
public async Task Created()
{
await JSRuntime.InvokeAsync<object>("AppendProgressBar");
}
public double Progressvalue = 20;
[AppendProgressBar.js]
|
@using Syncfusion.Blazor.Grids
@using Syncfusion.Blazor.TreeGrid;
@using Syncfusion.Blazor.ProgressBar
@inject IJSRuntime JSRuntime
<SfProgressBar ID="ProgressBar" Type="ProgressType.Linear" Height="5"
Value="@Progressvalue" Minimum="0" Maximum="100">
<ProgressBarAnimation Enable="true" Duration="2000" Delay="0" />
</SfProgressBar>
<SfTreeGrid ID="TreeGrid" DataSource="@TreeGridData" IdMapping="TaskId" ParentIdMapping="ParentId"TreeColumnIndex="1" AllowFiltering="true">
<TreeGridEvents DataBound="DataBound" Created="Created" TValue="BusinessObject"></TreeGridEvents>
<TreeGridColumns>
<TreeGridColumn Field="TaskId" HeaderText="Task ID" Width="80"TextAlign="Syncfusion.Blazor.Grids.TextAlign.Right"></TreeGridColumn>
. . .
</TreeGridColumns>
</SfTreeGrid>
@code{
public void DataBound()
{
Progressvalue = 100;
}
public async Task Created()
{
await JSRuntime.InvokeAsync<object>("AppendProgressBar"); //called the JSInterop
}
public double Progressvalue = 20;
public List<BusinessObject> TreeGridData { get; set; }
protected override void OnInitialized()
{
this.TreeGridData = BusinessObject.GetSelfDataSource().ToList();
}
}
AppendProgressBar.js
function AppendProgressBar() {
var progressbar = document.getElementById("ProgressBar");
document.getElementById("ProgressBar").remove();
document.getElementById("TreeGrid").getElementsByClassName("e-gridheader")[0].append(progressbar);//append the ProgressBar in between header and Content of the TreeGrid
} |
<SfProgressBar ID="ProgressBar" ...> ... </SfProgressBar>
|