[英]Spinner is not showing in modal for async function c#
我需要生成月度報告,所以我有模式,在模式內部,用戶可以選擇要生成的月度報告范圍,然后在用戶單擊“確定”按鈕后,微調器應在過程進行中顯示。該月)。 但是我的微調器沒有顯示。
我的HTML-MODAL
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" style="color: Black">Generate Monthly</h4>
</div>
<div class="modal-body">
<p>
</p>
<asp:RadioButtonList ID="generateMonthly" runat="server" AutoPostBack="true" OnSelectedIndexChanged="generateMonthly_SelectedIndexChanged"
CssClass="rbGenerate">
<asp:ListItem Text="Jan-April" Value="1" />
<asp:ListItem Text="May - August" Value="2" />
<asp:ListItem Text="Sept - December" Value="3" />
</asp:RadioButtonList>
<div id="divSpinner" align="center" runat="server">
Processing. Please wait.<br />
<br />
<img src="../build/images/loading.gif" alt="" />
</div>
</div>
<div class="modal-footer">
<asp:Button ID="btnOK" runat="server" Text="OK" OnClick="saveGenerate" class="btn btn-success" />
<asp:Button ID="btnClose" runat="server" Text="Close" OnClick="hideGenerate" class="btn btn-danger" />
</div>
</div>
</div>
我的密碼
public void saveGenerate(object sender, EventArgs e)
{
Debug.WriteLine("ENTERED saveGenerate n start spinner");
divSpinner.Visible = true;
Task task = GenerateReport();
task.Wait();
Debug.WriteLine("done");
Debug.WriteLine("SHOWING THIS AFTER GENERATE_MONTH PROCESS FINISH");
divSpinner.Visible = false;
}
生成報告代碼
public async Task GenerateReport()
{
//selected radiobutton(month range)
//executing query - to generate report based on selected month and saved into table
Debug.WriteLine("Process complete");
await Task.Delay(1000);
}
我的問題是,微調器沒有顯示。我嘗試引用其他答案,但仍然無法正常工作。
對於客戶端應用程序(例如Winforms或WPF),預期的行為將是正確的,盡管這是一個Web應用程序。 服務器端將處理saveGenerate事件,並且僅在請求完成后,結果才作為HTTP響應發送到客戶端。 這就是為什么您看不到微調器出現在瀏覽器中的原因。 請注意,在服務器上,任務是異步處理的。 一種解決方案是在調用服務器之前使用客戶端Javascript顯示微調器。 服務器端解決方案是在顯示微調框后立即刷新您的響應( Response.Body.Flush
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.