簡體   English   中英

微調框未在異步功能C#的模式中顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM