页面第一次打开即给用户异步提示之Asp.net Ajax延迟加载UpdatePanel
来源:互联网 发布:windows mobile 10手机 编辑:程序博客网 时间:2024/05/17 20:26
基本做法是页面加载刷新updatepanel从asp.net的AJAX客户端pageload事件。要做到这一点,需添加一个ASP.Net Server按钮并设定其样式行为为隐藏,还需设置它为updatepanel更新条件的触发器,因为这会导致postback ,然后从AJAX客户端pageload事件开始导致按钮异步从服务器后读取的数据.具体实现如下:
<%@ Page Language="C#" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { System.Threading.Thread.Sleep(3000); } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="args"></param> protected void Btn_Click(object sender, EventArgs args) { this.gvCustomers.DataSourceID = this.sqldsCustomers.ID; this.gvCustomers.DataBind(); }</script><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title>Untitled Page</title> <script type="text/javascript" language="javascript"> var _isInitialLoad = true; function pageLoad(sender, args){ if(_isInitialLoad){ _isInitialLoad = false; // 设置Button Click postback __doPostBack('<%= this.btn.ClientID %>',''); } } function onUpdating(){ // 取得 update progress div var updateProgressDiv = $get('updateProgressDiv'); // 取得 gridview element var gridView = $get('<%= this.gvCustomers.ClientID %>'); // 使它显示 updateProgressDiv.style.display = ''; // 获得DOM 元素的位置、宽度和高度 var gridViewBounds = Sys.UI.DomElement.getBounds(gridView); var updateProgressDivBounds = Sys.UI.DomElement.getBounds(updateProgressDiv); var x = (gridViewBounds.x + gridViewBounds.width - updateProgressDivBounds.width); var y = gridViewBounds.y; // 设置 progress 显示的坐标 Sys.UI.DomElement.setLocation (updateProgressDiv, x, y); } function onUpdated() { // 获得update progress div var updateProgressDiv = $get('updateProgressDiv'); // 设置隐藏 updateProgressDiv.style.display = 'none'; } </script></head><body> <form id="form" runat="server"> <asp:ScriptManager ID="scriptManager" runat="server" /> <div> <asp:SqlDataSource ID="sqldsCustomers" runat="server" SelectCommand="select customerid, companyname, contactname, contacttitle from dbo.customers" SelectCommandType="Text" ConnectionString="todo" /> <asp:SqlDataSource ID="sqldsCustomersEmpty" runat="server" SelectCommand="select top 10 '' as customerid, '' as companyname, '' as contactname, '' as contacttitle from dbo.customers" SelectCommandType="Text" ConnectionString="todo" /> <p style="background-color:AliceBlue; width:95%"> 使用Asp.Net Ajax 延迟加载UpdatePanel </p> <br /> <asp:Button ID="btn" runat="server" OnClick="Btn_Click" style="display:none;"/> <asp:Label ID="lblTitle" runat="server" Text="Customers" BackColor="lightblue" Width="95%" /> <asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="btn" /> </Triggers> <ContentTemplate> <asp:GridView ID="gvCustomers" runat="server" DataSourceID="sqldsCustomersEmpty" AllowPaging="true" AllowSorting="true" PageSize="10" Width="95%"> <AlternatingRowStyle BackColor="aliceBlue" /> <HeaderStyle HorizontalAlign="Left" /> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> <ajaxToolkit:UpdatePanelAnimationExtender ID="upae" BehaviorID="animation" runat="server" TargetControlID="updatePanel"> <Animations> <OnUpdating> <Parallel duration="0"> <%-- 设置UpdatePanel异步更新中的动画效果--%> <ScriptAction Script="onUpdating();" /> </Parallel> </OnUpdating> <OnUpdated> <Parallel duration="0"> <%--设置UpdatePanel异步更新结束后的动画效果--%> <ScriptAction Script="onUpdated();" /> </Parallel> </OnUpdated> </Animations> </ajaxToolkit:UpdatePanelAnimationExtender> <div id="updateProgressDiv" style="background-color:#CF4342; display:none; position:absolute;"> <span style="color:#fff; margin:3px">Loading </span> </div> </div> </form></body></html>
希望本文对你有所帮助。。
- 页面第一次打开即给用户异步提示之Asp.net Ajax延迟加载UpdatePanel
- asp.net之GridView+UpdatePanel异步刷新
- asp.net中TreeView异步延迟加载
- asp.net中TreeView异步延迟加载
- ASP.NET ajax 之updatepanel 失效
- asp.net 页面延迟加载内容
- asp.net ajax 使用updatepanel进行更新后的提示
- asp.net ajax 使用updatepanel进行更新后的提示
- asp.net ajax 使用updatepanel进行更新后的提示
- asp.net ajax 使用updatepanel进行更新后的提示
- asp.net ajax 在updatepanel中使用alert提示方法
- AJAX.NET之UpdatePanel
- ASP.NET 2.0 AJAX UpdatePanel
- ASP.NET AJAX 学习之三 UpdatePanel控件
- ASP.NET AJAX之UpdatePanel 和JQUERY冲突
- ASP.NET AJAX之UpdatePanel 和JQUERY冲突
- [zt]ASP.NET AJAX之UpdatePanel 和JQUERY冲突
- ASP.NET AJAX之UpdatePanel 和JQUERY冲突
- 十大开源CRM
- 结构完整的XML文档
- 关键字
- 利用MFC的Csocket类实现网络通信
- struts2拦截器学习
- 页面第一次打开即给用户异步提示之Asp.net Ajax延迟加载UpdatePanel
- ajax常用函数(1)
- 无法辩解的错
- mspdb80.dll not found解决方案
- 一些字符串的处理
- CSDN又被挂马了?
- CSDP考试大纲
- 打不开regedit.exe、gpedit.msc和taskmgr.exe的解决方法
- 与大家共享 SQL优化,编写高效SQL 实战经验