C# ASP.net页面加载弹出窗口

C# ASP.net页面加载弹出窗口,c#,asp.net,ajax,C#,Asp.net,Ajax,我想知道是否有可能在页面加载时显示一个modalpopp,说页面正在加载。我有一个从外部源获取大量数据的页面,这意味着在实际填充任何控件之前需要一点时间。 我想有一个弹出窗口或类似的东西,告诉用户页面正在加载 我试过这个: <ajax:ModalPopupExtender ID="mpeLoader" runat="server" TargetControlID="btnLoader" PopupControlID="pnlLoading" BackgroundCssClass="

我想知道是否有可能在页面加载时显示一个modalpopp,说页面正在加载。我有一个从外部源获取大量数据的页面,这意味着在实际填充任何控件之前需要一点时间。 我想有一个弹出窗口或类似的东西,告诉用户页面正在加载

我试过这个:

<ajax:ModalPopupExtender ID="mpeLoader" runat="server" TargetControlID="btnLoader"
    PopupControlID="pnlLoading" BackgroundCssClass="modalBackground" />
<asp:Panel ID="pnlLoading" runat="server" Width="100px" Style="display: none;">
    <div class="detailspopup">
        <table>
            <tr>
                <td><asp:Image ID="imgLoader" runat="server" ImageUrl="~/App_Themes/Main/img/loading.gif" /></td>
            </tr>
            <tr>
                <td>Loading...</td>
            </tr>
        </table>
    </div>
</asp:Panel>

加载。。。

使用虚拟按钮btnLoader,允许我访问显示并隐藏隐藏代码。我在页面生命周期中一直在玩弄.show方法,但我似乎找不到一种方法在页面加载时显示poopup(加载完成后消失)。过滤数据时也需要这样做,从而根据过滤数据获得新数据。

如果没有更多信息,很难说最好的解决方案是什么,但一种可能的方法是让第一个页面只是充当一个“加载程序”,其中包含对话框和一些javascript,这些javascript将使用ajax加载实际页面

就像我之前写的,这在很大程度上取决于你想要完成什么:-)

但是使用jQuery的一种方法是,如果您试图加载的页面非常简单,就像没有任何状态/回发控件的列表一样,那么创建一个“加载程序”——页面,如下面的代码所示,并使用urltooadquery参数动态加载哪个页面

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>

    <script src="jquery.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(function()
        {
            $("form").load("<%= this.Request["UrlToLoad"] %> form");
        });
    </script>
</head>

<body>
    <form runat="server">           
        Loading...
    </form>
</body>

$(函数()
{
$(“表格”)。加载(“表格”);
});
加载。。。

您考虑过使用jQuery吗?有一些优秀的模态对话框插件可用。我过去曾广泛使用过埃里克·马丁的,并对此感到非常满意。它在显示对话框之前和之后都有用于回调的钩子,因此您可以使用函数执行需要的任何检查


使用jQuery路由-您可以有一个div,它包围了所有仍在加载的内容,并通过显示“页面加载”消息的模式对话框来暗显/禁用。然后,您可以利用jQuery中的功能来确定页面何时完成加载。此时,您可以删除对话框并淡入该页面。

我所做的是制作一个preload.aspx页面,该页面将“保持”直到加载我们想要的页面:

<script type="text/javascript" language="javascript">
window.onload=function()
{
    $get("ctl00_ContentPlaceHolder1_btnNav",document).click();
    setTimeout('document.images["Loader"].src="App_Themes/Main/img/loading.gif"', 200);         
}
</script>

window.onload=function()
{
$get(“ctl00\u内容占位符1\u btnNav”,文档)。单击();
setTimeout('document.images[“Loader”].src=“App_Themes/Main/img/loading.gif””,200);
}
按钮实际上进行了传输

<asp:Label ID="lblLoading" runat="server" Text="Loading the requested page. Please wait ..." />
            <asp:Button ID="btnNav" Style="display: none;" runat="server" OnClick="NavTo" />

protected void NavTo(object sender, EventArgs e)
    {
        Response.Redirect(Request.QueryString["url"].ToString());
    }

受保护的无效导航(对象发送方、事件参数)
{
Response.Redirect(Request.QueryString[“url”].ToString());
}

我喜欢它,因为它可以在每个繁重的数据页面上重复使用…

这是否仍然存在在页面加载之前弹出窗口不显示的问题?我应该把加载器添加到母版页吗?你会建议我怎么做?我是客户端脚本的noob。