首页 新闻 会员 周边

updateprogress无法显示

0
悬赏园豆:10 [已关闭问题] 关闭于 2010-08-17 09:54

情况是这样的: 页面上放了一个updatepanel, 一个updateprogress,一个button(在updatepanel外面),并且设置了updatepanel的触发器为button.  点击button后,我sleep 3s ,人为造成延迟,但是updateprogress里的内容就是不显示。

网上查的是说button 一定要在updatepanel内才会显示.我按照查到的方法加了如下代码:

 var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(InitializeRequest);
    prm.add_endRequest(EndRequest);
    var postBackElement;
    function InitializeRequest(sender, args) {
        if (prm.get_isInAsyncPostBack())
            args.set_cancel(true);
        postBackElement = args.get_postBackElement();

        if (postBackElement.id == 'btnSearch')
            $get('UpdateProgress1').style.display = 'block';
    }
    function EndRequest(sender, args) {
        if (postBackElement.id == 'btnSearch')
            $get('UpdateProgress1').style.display = 'none';
    }

但是还是不行。请大家帮忙。谢谢。

问题补充: button在内部是可以显示,我之前也做过这个测试。
szny的主页 szny | 初学一级 | 园豆:60
提问于:2010-08-16 15:14
< >
分享
所有回答(1)
0

你先用下面简单的代码试一下,要注意的就是引发更新的控件必须在UpdatePanel内,不然不会显示。
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
   
    <asp:UpdateProgress ID="updateprogress" runat="server" AssociatedUpdatePanelID="UpdataPanel1">
    <ProgressTemplate><div>loading....</div></ProgressTemplate>
    </asp:UpdateProgress>
    <asp:UpdatePanel ID="UpdataPanel1" runat="server" UpdateMode="Always">
   
    <ContentTemplate>
    <asp:Label ID="LabTimeIN" runat="server"></asp:Label>   
    <asp:Button ID="BtnIN" Text="内部" runat="server" OnClick="btn_Click" />
    </ContentTemplate>
   
    <Triggers><asp:AsyncPostBackTrigger ControlID="BtnOUT"/></Triggers>
   
    </asp:UpdatePanel> <br/>
    <asp:Label ID="LabTimeOUT" runat="server"></asp:Label>
    <asp:Button ID="BtnOUT" Text="外部刷新" runat="server" OnClick="btn_Click" />(不管用,因为在外部)
    </form>

Astar | 园豆:40805 (高人七级) | 2010-08-16 15:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册