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