没有更新面板的jQuery Asp.NET模态Progess

时间:2011-10-06 19:14:23

标签: asp.net

我们的商店/网站有问题。 我们使用jQuery为一个模态激活AJAXToolkitExtender 问题是我们应该将按钮包装在一个更新面板中,该面板调用触发模态的jQuery。 我们的问题在于,出于某种原因,我们在Firefox和Chrome中获得了双重回复。反过来,当我们从服务器返回错误以在UI上显示时它会清除我们的购物车。我们希望通过jQuery获取调用的状态,而无需使用UpdatePanel。 UpdatePanels已经知道Firefox中的问题就是发回双重帖子。有没有人有一个直接的客户端站点解决方案或解决方案,我们不必使用更新面板来获取状态或我们对服务器的调用,并显示和隐藏更新面板。 我们的代码如下: 在ASCX中

<script type="text/javascript" language="javascript">
    var ModalProgress = '<%= ModalProgress.ClientID %>';         
</script>
<script type="text/javascript" src="/Scripts/jsUpdateProgress.js"></script>
<asp:Panel ID="panelUpdateProgress" runat="server" CssClass="updateProgress">
        <asp:UpdateProgress ID="UpdateProg1" DisplayAfter="0" runat="server">

            <ProgressTemplate>
                <div id="processingOrderProgress">
               <div id="processingOrderProgressText"> 
<%=GetLocaleResourceString("Museum.MuseumOrderConfirmationProcessingText")%>
</div>

             <img src="../App_Themes/Museum/images/museumLayout/loading.gif" alt="Processing" />
                </div>
            </ProgressTemplate>
        </asp:UpdateProgress>
    </asp:Panel>

    <ajaxToolkit:ModalPopupExtender ID="ModalProgress" runat="server" TargetControlID="panelUpdateProgress"
        BackgroundCssClass="modalBackground" PopupControlID="panelUpdateProgress" />

这是来自jsUpdateProgress.js的JS

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginReq);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endReq);

function beginReq(sender, args) {
    // shows the Popup 
    $find(ModalProgress).show();
}

function endReq(sender, args) {
    //  hides the Popup 
    $find(ModalProgress).hide();
}

2 个答案:

答案 0 :(得分:1)

我要关闭这个。我实际上使用我的按钮单击来触发或使用jQuery显示模态div。我不等待beginReq或endReq,我只是解雇模态。该页面发回一个帖子,因为在jQuery中我隐藏了文档上的div。现在,当回发后,模态消失了。我想你也可以在init init上做,但无论如何。这是我的解决方案。无需更新面板。

$(document).ready(function(){

$('#modalDiv').hide);

$('.submitBtn').click(function(){

  $('#modalDiv').show();

});

//在页面发回帖子或重新加载模态后消失。

});

这很简单。

答案 1 :(得分:0)

您实际上不再需要添加UpdateProgess控件,因为jsUpdateProgress.js文件上的方法已足以捕获更新进度和完成。

我建议您使用HTML div弹出窗口替换UpdateProgress和ModalPopupExtender,并使用您的beginReq和endReq方法来显示它。为了更好的可用性,您应该添加一个cancelReq方法,允许您取消当前请求。