<SfTab ID="Ej2Tab" LoadOn="ContentLoad.Demand" Width="100%">
<TabEvents Created="OnCreated" Selecting="OnSelecting" Selected="OnSelected"></TabEvents>
<TabItems>
<TabItem>
<ChildContent>
<TabHeader Text="Grid 1"></TabHeader>
</ChildContent>
<ContentTemplate>
<div style="height: 400px;width:800px">
<SfGrid DataSource="@OrderData" Height="100%" Width="100%">
. . . . .
</SfGrid>
</div>
</ContentTemplate>
</TabItem>
<TabItem>
<ChildContent>
<TabHeader Text="Grid 2"></TabHeader>
</ChildContent>
<ContentTemplate>
<div style="height: 400px;width:800px">
<SfGrid DataSource="@EmployeesData" Height="100%" Width="100%">
. . . . .
</SfGrid>
</div>
</ContentTemplate>
</TabItem>
</TabItems>
</SfTab>
</div>
@code {
public List<Order> Orders { get; set; }
public List<Order> OrderData { get; set; }
public List<EmployeeData> Employees { get; set; }
public List<EmployeeData> EmployeesData{ get; set; }
public async Task OnCreated() // will be triggered when tab is created
{
await Task.Yield();
OrderData = Orders; // update the datasource for first Grid with delay
}
public async Task OnSelecting(SelectingEventArgs Args) // will be triggered before selectign a tab
{
//empty the Grid Datasource
OrderData = null;
EmployeesData = null;
}
public async Task OnSelected(SelectEventArgs Args)// will be triggered when tab is selected
{
await Task.Yield();
// here udpate the selected tag Grid data.
if (Args.SelectedIndex == 0)
{
OrderData = Orders;
}
else if (Args.SelectedIndex == 1)
{
EmployeesData = Employees;
}
}
protected override void OnInitialized()
{
Orders = Enumerable.Range(1, 75).Select(x => new Order()
{
OrderID = 1000 + x,
CustomerID = (new string[] { "ALFKI", "ANANTR", "ANTON", "BLONP", "BOLID" })[new Random().Next(5)],
Freight = 2.1 * x,
OrderDate = DateTime.Now.AddDays(-x),
}).ToList();
Employees = Enumerable.Range(1, 75).Select(x => new EmployeeData()
{
EmployeeID = x,
FirstName = (new string[] { "Nancy", "Andrew", "Janet", "Margaret", "Steven" })[new Random().Next(5)],
LastName = (new string[] { "Davolio", "Fuller", "Leveringg", "peacock", "Smith" })[new Random().Next(5)],
Role = (new string[] { "Sales Representative", "Sales Representative", "Sales Manager", "HR Manager", "Inside Sales Coordinator" })[new Random().Next(5)],
HireDate = DateTime.Now.AddDays(-x),
}).ToList();
}
|
We are experiencing this issue with initial load on a tab page.
Not only with grids.
It appears binding of simple textboxes is slow and drop-down list binding a second or two.
It would be great if you could look into this issue in more depth as it's been plaguing our app development for some time now.
Hi Zhi,
Thanks for the update.
We have branched a separate ticket for the update. Kindly follow up with the mentioned thread for the further followups.
https://www.syncfusion.com/forums/175192/delay-with-initial-load-on-a-tab-page-from-forum-156387
Until then we appreciate your patience.
Regards,
Naveen Palanivel.