http://read.newbooks.com.cn/info/178383.htmlhttp://read.newbooks.com.cn/info/178383.html

在使用的时候 有个是否占位的属性不要设置为true,延迟时间也需要设置大点,当你的业务计算时间比较大的时候.

下边是网上找的文章,挺有用的

 

在updatePanel里面放了一个Button和Label,然后点击Button给Label赋值。这个是个很简单的过程了。
代码我就补贴了。
然后我再加了一个UpdateProgress控件,把它的AssociatedUpdatePanelID指向刚加的UpdatePanel,其代码如下:

UpdateProgress使用,出不来特效问题小结 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
UpdateProgress使用,出不来特效问题小结            
<ContentTemplate>
UpdateProgress使用,出不来特效问题小结            
<asp:Label ID="Label1" runat="server" Text="Label" Width="204px"></asp:Label><br />
UpdateProgress使用,出不来特效问题小结            
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
UpdateProgress使用,出不来特效问题小结            
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
UpdateProgress使用,出不来特效问题小结            
<ProgressTemplate >
UpdateProgress使用,出不来特效问题小结             
<p>
UpdateProgress使用,出不来特效问题小结                 更新中......
UpdateProgress使用,出不来特效问题小结             
</p>
UpdateProgress使用,出不来特效问题小结            
</ProgressTemplate>
UpdateProgress使用,出不来特效问题小结            
</asp:UpdateProgress>
UpdateProgress使用,出不来特效问题小结            
</ContentTemplate>
UpdateProgress使用,出不来特效问题小结        
</asp:UpdatePanel>
Button事件:
protected void Button1_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(3000);
        Label1.Text = DateTime.Now.ToString();
    }
运行结果正常,点击Button,“更新中...”出现,然后Label被赋值。

然后我把updateProgress拿到updatePanel控件外面来,运行,正常。
然后我再把button控件拿到updatePannel控件外面来,然后又在updatepanel里面加上triggers,代码如下:
UpdateProgress使用,出不来特效问题小结 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
UpdateProgress使用,出不来特效问题小结            
<ContentTemplate>
UpdateProgress使用,出不来特效问题小结            
<asp:Label ID="Label1" runat="server" Text="Label" Width="204px"></asp:Label><br />
UpdateProgress使用,出不来特效问题小结                
&nbsp;&nbsp;&nbsp; &nbsp;
UpdateProgress使用,出不来特效问题小结            
</ContentTemplate>

UpdateProgress使用,出不来特效问题小结            
<Triggers>
UpdateProgress使用,出不来特效问题小结                
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
UpdateProgress使用,出不来特效问题小结            
</Triggers>
UpdateProgress使用,出不来特效问题小结        
</asp:UpdatePanel>
UpdateProgress使用,出不来特效问题小结            
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" Width="201px" />
UpdateProgress使用,出不来特效问题小结            
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1" DisplayAfter="1">
UpdateProgress使用,出不来特效问题小结            
<ProgressTemplate >
UpdateProgress使用,出不来特效问题小结             
<p>
UpdateProgress使用,出不来特效问题小结                 更新中......
UpdateProgress使用,出不来特效问题小结             
</p>
UpdateProgress使用,出不来特效问题小结            
</ProgressTemplate>
UpdateProgress使用,出不来特效问题小结            
</asp:UpdateProgress>
运行,点击Button按钮,发现"更新中..."字段没有出现,但是赋值正常。
难道使用triggers的调用外部控件来进行异步传输,不会引发UpdateProgress?

后来在网上找到了解决方法:
在代码里面加入如下js:
UpdateProgress使用,出不来特效问题小结<script language="javascript" type="text/javascript">
UpdateProgress使用,出不来特效问题小结    
var prm = Sys.WebForms.PageRequestManager.getInstance();
UpdateProgress使用,出不来特效问题小结    prm.add_initializeRequest(InitializeRequest);
UpdateProgress使用,出不来特效问题小结    prm.add_endRequest(EndRequest);
UpdateProgress使用,出不来特效问题小结    
var
 postBackElement;
UpdateProgress使用,出不来特效问题小结    
function
 InitializeRequest(sender, args) 
>
 

然后运行正常,从上面的js可以看出,如果是triggers触发的button事件,那么progress控件的style.display始终都是none,在button_click事件触发时,并没有使progress的 style.display变成block。所以里面的"更新中..."显示不出来。

 

再如:

    <div id="divUpdateProgress" style="position: absolute; right: 466px; top: 48px; height: 20px;">
        
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
            
<ProgressTemplate>
                
<div style="font-size: 12px; color: Blue; background-color: #FFFFD6; border: solid 1px blue;">
                    
<img src="../Image/ajaxloader.gif" />
                    数据加载中,请稍候
                
</div>
            
</ProgressTemplate>
        
</asp:UpdateProgress>
    
</div>

  

UpdateProgress使用,出不来特效问题小结    <script language="javascript" type="text/javascript">
UpdateProgress使用,出不来特效问题小结        
var prm = Sys.WebForms.PageRequestManager.getInstance();
UpdateProgress使用,出不来特效问题小结        prm.add_initializeRequest(InitializeRequest);
UpdateProgress使用,出不来特效问题小结        prm.add_endRequest(EndRequest);
UpdateProgress使用,出不来特效问题小结        
var postBackElement;
UpdateProgress使用,出不来特效问题小结        
function InitializeRequest(sender, args) 
>

相关文章:

  • 2021-12-26
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2022-01-01
猜你喜欢
  • 2022-12-23
  • 2021-08-07
  • 2021-12-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-05
相关资源
相似解决方案