I have following code where i fetch results from SQL server. These are razor pages, blazor framework .Net
<button @onclick="Filter">Filter</button>
@{
async Task Filter() {
await FetchFromDb();
}
This query runs for 18 seconds. So i want to show loading spinner. In blazor, you can use a predefined div with spinner class to do this.
<div class="spinner"> </div>
I want to use this div like following
@(IsLoading) {
<div class="spinner"></div>
} else {
show results from query
}
For which i need to change the Filter function as follows
async Task Filter() {
IsLoading = true;
await FetchFromDb();
IsLoading = false;
}
But I figured, that the whole process of changing IsLoading=true and Isloading=false is done in one go and i don't see a spinner.
Is there a way to change IsLoading=true, while Filter function is getting results from Db in await FetchFromDb(); ?
@(IsLoading) {
<div class="spinner"></div>
} else {
show results from query
}
async Task Filter() {
IsLoading = true;
await FetchFromDb();
IsLoading = false;
}
But this doesn't work. IsLoading doesn't get updated on changing IsLoading=True.