UpdateProgress没有出现在第二次单击相同的按钮上

时间:2017-09-12 07:01:40

标签: c# updatepanel updateprogress

当我点击按钮btnSubmit时,

UpdateProgress第一次出现。但是当我下次UpdateProgress没有出现时点击相同的按钮。但其他所有事情都很有效。我正在使用此UpdateProgress在向客户端发送电子邮件时显示GIF图像。对于第一个客户端,UpdateProgress出现,但对于其他的' n' UpdateProgress没有出现。请帮助我在Stack Overflow第二次提出这个问题

下面的代码显示了我的UpdateProgress

 <asp:UpdatePanel ID="up1" runat="server">
        <ContentTemplate>
            <asp:UpdateProgress ID="updProgress"
                runat="server">
                <ProgressTemplate>
                    <div class="modal">
                        <div class="center">
                            <span style="padding-left: 10px"><b>Please Wait..</b></span>
                            <img alt="" src="../images/Preloader_3.gif" width="50" height="50" />
                        </div>
                    </div>
                </ProgressTemplate>
            </asp:UpdateProgress>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>

下面的代码显示了触发UpdateProgress的按钮

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
    </Triggers>
    <ContentTemplate>
    <div class="form-group row">
        <div class="col-sm-6">
            <div class="col-sm-6">
                <asp:Button ID="btnSubmit" OnClick="btnSubmit_Click"
                    OnClientClick="javascript:return btnSubmit();" CssClass="btn btn-primary"
                    runat="server" Text="Submit" />
                <a href="assignment.aspx?sid=<%=Request.QueryString["sid"] %>" class="btn btn-default">Cancel</a>
            </div>
        </div>
    </div>
    </ContentTemplate>
    </asp:UpdatePanel>

CS背后的代码

 protected void btnSubmit_Click(object sender, EventArgs e)
    {
        updProgress.Visible = true;
        SendEmail(Convert.ToInt32(drpDiv.Text));
        updProgress.Visible = false;
    }

1 个答案:

答案 0 :(得分:0)

您必须将更新进度放在更新面板之外,并与更新进度相关联。您可以创建另一个更新面板以触发您的按钮,并自动回发为真。

<asp:UpdateProgress ID="UpdateProgress1" runat="server" 
                    AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate>
    <!-- Place your Message here -->
</ProgressTemplate>
</asp:UpdateProgress>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Button ID="btnSubmit" OnClick="btnSubmit_Click" runat="server" 
                    AutoPostBack="true" />
    </ContentTemplate>
</asp:UpdatePanel>

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
    <!-- You can put some controls here -->
</ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>

或者,第二种方法是:

<asp:UpdateProgress ID="UpdateProgress1" runat="server" 
                    AssociatedUpdatePanelID="UpdatePanel1">
    <ProgressTemplate>
        <!-- Place your Message here -->
    </ProgressTemplate>
</asp:UpdateProgress>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Button ID="btnSubmit" OnClick="btnSubmit_Click" runat="server" 
                    AutoPostBack="true" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>