如何在ASP.NET中使用带有Iframe的Ajax UpdateProgress

时间:2011-08-25 06:20:00

标签: asp.net ajax asp.net-ajax

我试图用iframe显示UpdateProgress图像。但它没有用。我正在使用这个iframe来显示多个页面。我的代码如下......


        

        <iframe 
            runat="server" id="Iframe2" height="565" width="100%"   scrolling="no" 
            style="overflow-x:hidden;" frameborder="0" marginheight="0" marginwidth="0" 
            vspace="0" hspace="0">                
        </iframe>  

     <asp:HiddenField ID="hdfIndex" runat="server" />                         
     </ContentTemplate>
            <Triggers>
                 <asp:AsyncPostBackTrigger ControlID="ibtnPrevious" EventName="Click" />
                 <asp:AsyncPostBackTrigger ControlID="ibtnNext" EventName="Click" />
                 <asp:AsyncPostBackTrigger ControlID="ibtnPage1" EventName="Click" />
                 <asp:AsyncPostBackTrigger ControlID="ibtnPage2" EventName="Click" />
                 <asp:AsyncPostBackTrigger ControlID="ibtnPage3" EventName="Click" />
                 <asp:AsyncPostBackTrigger ControlID="ibtnPage4" EventName="Click" />
                 <asp:AsyncPostBackTrigger ControlID="ibtnPage5" EventName="Click" />
            </Triggers>


但是当我在没有iframe的情况下使用它时,它可以很好地工作。

1 个答案:

答案 0 :(得分:1)

在我看来,使用iframe执行此操作的最佳方法是将iframe指向只负责重定向的aspx页面:

<iframe runat="server" id="Iframe2" height="565" width="100%"   scrolling="no" 
            style="overflow-x:hidden;" frameborder="0" marginheight="0" marginwidth="0" 
            vspace="0" hspace="0" src="Waiting.aspx?page=WebPageTarget.aspx">                
        </iframe>

而且,在Wating.aspx.cs中:

protected void Page_Load(object sender, EventArgs e)
{
  var s = Request.QueryString["page"];
  ClientScript.RegisterStartupScript(GetType(), "gotorealpage",
                                     "window.location=\"" + s + "\";", true);
}

当然,在Waiting.aspx中,你把你的等待形象。