使用 UpdatePanel

2023-11-14

1 概述
ASP.NET UpdatePanel 控件能让你创建丰富的、以客户为中心的 Web 应用程序。使用 UpdatePanel 控件,可以刷新选择的页面部分而不是使用回发来刷新整个页面,这就像是执行了一个局部页面更新一样。包含一个 ScriptManager 和一个或多个 UpdatePanel 的 Web 页面会自动加入局部页面更新,而不需要定制客户端代码。

1.1 场景
UpdatePanel 是一个服务器控件,可以帮助你开发使用复杂客户端行为的 Web 页面,使 Web 页面呈现更多的交互给用户。服务器和客户端之间协调以仅更新指定的页面部分通常需要很深的 ECMAScript(Javascript)知识。然而,通过使用UpdatePanel 控件,可以不用编写任何客户端脚本就可以给页面加入局部页面更新。如果你愿意,可以添加定制的客户端脚本以增强客户端用户体验。在使用 UpdatePanel 控件时,页面行为是独立于浏览器的,并且潜在的减少了客户端和服务器的数据传输量。

1.2 背景
UpdatePanel 的工作是指定无须刷新整个页面就可以更新的区域,这个过程由 ScriptManager 服务器控件和客户端 PageRequestManager 类进行协调。当局部更新可用时,控件可以异步的发送到服务器。异步回发的行为和常规回发一样,结果服务器页面会执行完整的页面和控件生命周期。然而,使用异步回发,页面更新仅限于封闭在 UpdatePanel 控件中标记为更新的页面区域。服务器仅为受影响的元素发送 HTML 标记到浏览器。在浏览器中,客户端 PageRequestManager 类执行文档对象模型 ( DOM ) 操作用更新的标记替换得已有的 HTML 。下面的图例展示了页面的第一次加载,和后来的刷新 UpdatePanel 控件的内容的异步回发。
2 UpdatePanel 的使用
UpdatePanel 的基本使用方法非常简单,向页面中添加一个 SciprtManager 控件和一个或多个 UpdatePanel 控件,再把要局部更新的页面元素和触发更新的控件放到 UpdatePanel 控件的 ContentTemplate 属性中即可。如下列代码所示,在其中添加了一个 Button 控件:
 1 < asp:UpdatePanelID = " UpdatePanel1 "
 2         UpdateMode = " Conditional "
 3         runat = " server " >
 4      < ContentTemplate >
 5          < asp:Button ID = " Button1 "
 6             Text = " RefreshPanel "
 7             runat = " server " />
 8      </ ContentTemplate >
 9 </ asp:UpdatePanel >
10
要使用 UpdatePanel 控件可用,必须设置 ScriptManager 的 EnablePartialRendering  属性为 true 。
UpdatePanel 控件可以输出为 <div> 元素或 <span> 元素,以在页面中形成一个块或内联的区域,可以设置其 RenderMode 属性为 Block ( 默认,<div>)或 Inline ( <span> ) 来指定。

2.1 指定 UpdatePanel 的内容
可以使用 ContentTemplate 属性以声明的方式或者在设计器中添加内容到 UpdatePanel 控件中。在标记中,这个属性显示为 <ContentTemplate> 元素。如果要以编程的方式添加内容,可以使用 ContentTemplateContainer 属性。
包含一个或多个 UpdatePanel 控件的页面在第一次输出时,所有 UpdatePanel 控件中的内容都会被输出并被发送到浏览器。在后来的异步更新中,单个 UpdatePanel 控件中的内容可能会被更新。更新依赖于面板的设置、导致回发的元素以及指定给每个面板的代码。

2.2 指定 UpdatePanel 的触发器
默认情况下,UpdatePanel 控件中的任何控件回发都将导致异步回发并刷新面板的内容。然而,也可以配置页面中且不在面板中的其他控件来刷新 UpdatePanel 控件。可以为 UpdatePanel 控件定义一个触发器来完成此目的。触发器是指定哪个回发控件和事件来导致面板的更新的绑定。当触发器控件指定的事件触发时(如一个按钮的 Click 事件),更新面板将被刷新。
下列示例展示了如何添加一个触发器到 UpdatePanel 面板中去。
< asp:Button ID = " Button1 "
         Text
= " Refresh Panel "
          runat
= " server "   />
< asp:ScriptManager ID = " ScriptManager1 "
          runat
= " server "   />
< asp:UpdatePanel ID = " UpdatePanel1 "    UpdateMode = " Conditional "  runat = " server " >
         
< Triggers >
                
< asp:AsyncPostBackTrigger ControlID = " Button1 "   />
        
</ Triggers >
       
< ContentTemplate >
              
< fieldset >
                  
< legend > UpdatePanel 内容 </ legend >
                  
<%= DateTime.Now.ToString()  %>
              
</ fieldset >
       
</ ContentTemplate >
</ asp:UpdatePanel >
触发器由在 UpdatePanel 控件的 <Triggers> 元素中的 <asp:AsyncPostBackTrigger> 元素定义。(如果是在 Visual Studio 中编辑页面,就可以在 UpdatePanel 的属性面板中单击 Triggers 属性后面的省略号按钮打开一个 UpdatePanelTrigger 集合编辑器对话框来创建触发器。)触发器必要的属性是 ControlID ,用它来指定可以导致面板更新的控件的 ID 。
有上例中,虽然按钮没有声明在面板中,但是由于在面板中指定了它为触发器,所以当按钮事件触发时,会产生其被包含中面板中同样的结果,即面板被更新。
触发器控件的事件是可选的,如果没有指定事件,触发器将使用控件的默认事件。例如,对于 Button 控件,默认事件就是 Click 事件。

2.3 在母版页中使用 UpdatePanel
要在母版页中使用 UpdatePanel 控件,必须确定如何使用 ScriptManager 控件。如果在母版页面中放置了一个 ScriptManater 控件,则 ScriptManager 控件可以在所有的内容面中起作用。(如果要在内容页中声明脚本或服务,可以在页面中添加一个 ScriptManagerProxy,它具有和 ScriptManager 差不多一样的属性和方法。)
如果在母版页中没有包含 ScriptManager 控件,就必须在包含 UpdatePanel 控件的每个内容页是都要放置一个 ScriptManager 控件,设计的选择依赖于在应用程序中将如何管理客户端脚本。
如果在母版页中包含了 ScriptManager 控件,而在某个内容页中又不打算使用局部页面输出的功能时,必须用程序设置内容中的 ScriptManager 控件的 EnablePartialRendering 为 false  。

2.4 使用嵌套的 UpdatePanel 控件
UpdatePanel 控件可以嵌套使用,如果父面板被刷新,则所有嵌套的面板也都会被刷新。
下列代码展示了如何在一个 UpdatePanel 控件中定义另一个 UpdatePanel 控件。
 1 <% @ Page Language = " C# "   %>
 2 <! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "
 3   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
 4 < html xmlns = " http://www.w3.org/1999/xhtml " >
 5 < head id = " Head1 "  runat = " server " >
 6      < title > UpdatePanelUpdateMode 示例 </ title >
 7      < style type = " text/css " >
 8     div.NestedPanel
 9      {
10      position: relative;
11      margin: 2% 5% 2% 5%;
12    }
13      </ style >
14 </ head >
15 < body >
16      < form id = " form1 "  runat = " server " >
17          < div >
18              < asp:ScriptManager ID = " ScriptManager "
19                                runat = " server "   />
20              < asp:UpdatePanel ID = " OuterPanel "
21                              UpdateMode = " Conditional "
22                              runat = " server " >
23                  < ContentTemplate >
24                      < div >
25                          < fieldset >
26                              < legend > 外层 Panel  </ legend >
27                              < br  />
28                              < asp:Button ID = " OPButton1 "
29                                         Text = " 外层面板按钮 "
30                                         runat = " server "   />
31                              < br  />
32                             最后更新在:
33                              <%=  DateTime.Now.ToString()  %>
34                              < br  />
35                              < br  />
36                              < asp:UpdatePanel ID = " NestedPanel1 "
37                                                UpdateMode = " Conditional "
38                                                runat = " server " >
39                                  < ContentTemplate >
40                                      < div  class = " NestedPanel " >
41                                          < fieldset >
42                                              < legend > 嵌套面板 </ legend >
43                                              < br  />
44                                             最后更新在:
45                                              <%=  DateTime.Now.ToString()  %>
46                                              < br  />
47                                              < asp:Button ID = " NPButton1 "
48                                                         Text = " 嵌套面板按钮 "
49                                                         runat = " server "   />
50                                          </ fieldset >
51                                      </ div >
52                                  </ ContentTemplate >
53                              </ asp:UpdatePanel >
54                          </ fieldset >
55                      </ div >
56                  </ ContentTemplate >
57              </ asp:UpdatePanel >
58          </ div >
59      </ form >
60 </ body >
61 </ html >
62

2.5 用程序创建 UpdatePanel 控件
要用程序添加一个 UpdatePanel 控件到页面中,可以先创建一个新的 UpdatePanel 实例,然后使用它的 ContentTemplateContainer 属性的 Add( Control ) 方法来添加其他控件。不能直接使用 ContentTemplate  属性来添加控件。
如果 UpdatePanel 控件是程序添加的,只有来自同样命名容器如 UpdatePanel 控件中控件的回发才可以被使用为面板的触发器。
下列代码演示了如何用程序添加 UpdatePanel 控件。
<% @ Page Language = " C# "   %>
<! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "
 
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< script runat = " server " >
    
protected   void  Page_Load( object  sender, EventArgs e)
    
{
        UpdatePanel up1 
= new UpdatePanel();
        up1.ID 
= "UpdatePanel1";
        up1.UpdateMode 
= UpdatePanelUpdateMode.Conditional;
        Button button1 
= new Button();
        button1.ID 
= "Button1";
        button1.Text 
= "Submit";
        button1.Click 
+= new EventHandler(Button_Click);
        Label label1 
= new Label();
        label1.ID 
= "Label1";
        label1.Text 
= "A full page postback occurred.";
        up1.ContentTemplateContainer.Controls.Add(button1);
        up1.ContentTemplateContainer.Controls.Add(label1);
        Page.Form.Controls.Add(up1);

    }

    
protected   void  Button_Click( object  sender, EventArgs e)
    
{
        ((Label)Page.FindControl(
"Label1")).Text = "Panel refreshed at " +
            DateTime.Now.ToString();
    }

</ script >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head id = " Head1 "  runat = " server " >
    
< title > UpdatePanel Added Programmatically Example </ title >
</ head >
< body >
    
< form id = " form1 "  runat = " server " >
        
< div >
            
< asp:ScriptManager ID = " TheScriptManager "
                               runat
= " server "   />
        
</ div >
    
</ form >
</ body >
</ html >


3 UpdatePanel 的关键属性
ChildrenAsTriggers:
指示来自 UpdatePanel 控件的直接子控件的回发是否更新面板的内容。设置为 true 时更新,否则不更新,默认为 true 。如果此属性设置为 false ,UpdatePanel 控件的 UpdateMode 就必须设置为 Conditional ,否则会抛出 InvalidOperationException 异常。
UpdateMode:
指示什么时候需要更新面板。当一个 UpdatePanel 控件没有包含在另一个 UpatePanel 控件中时,面板的更新是根据 UpdateMode 、ChildrenAsTriggers 属性的设置,以及触发器的集合来进行的。当一个 UpdatePanel 控件在另一个 UpdatePanel 控件内部时,子面板会自动在父面板更新时更新。
UpdatePanel 控件的内容在下列情形下会更新:
  • 如果 UpdateMode 属性设置为 Alwarys 时,UpdatePanel 控件中的内容会在源自页面上任何地方的每个回发时更新。这包括由包含在其他 UpdatePanel 控件中的控件的回发和没有在 UpdatePanel 控件中的回发。
  • 如果 UpdatePanel 控件嵌套在另一个 UpdatePanel 控件中时,父面板更新时它也会被更新。
  • 如果 UpdateMode 属性被设置为 false 时,且出现下列条件之一时:
    • 显式调用 UpdatePanel 控件的 Update() 方法。
    • 由 UpdatePanel 控件中的 Triggers 属性定义的触发器控件引起的回送。在这种情况下,控件会显式的触发面板内容的更新。定义为触发器的控件可以在 UpdatePanel 控件的内部也可以在其外部。
    • ChildrenAsTriggers 属性设置为 true ,并且是由 UpdatePanel 控件中的子控件导致的回发。在嵌套的 UpdatePanel 控件中的子控件不会引起外层 UpdatePanel 控件的更新,除非显示的定义为触发器。
4 总结
由以上内容可以看出,使用 UpdatePanel 控件可以方便的帮助大家开发出具有 AJAX 特性的 ASP.NET 应用程序来。当然,它也不是万能的,过度的使用会引起一定的性能开销,同时它还与现在的部分 ASP.NET 控件不兼容,如 TreeView、Menu,以及 WebParts 控件等。
 
TrackBack:http://www.cnblogs.com/cxy521/archive/2008/01/22/1048264.html

转载于:https://www.cnblogs.com/hdjjun/archive/2008/06/17/1223647.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 UpdatePanel 的相关文章

  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • Oracle数据库索引管理-基于函数索引ORA-30553

    在ORACALE数据库中 创建函数索引时 若函数是自定义的函数 须在定义函数时加上deterministic关健字 不然会出现 函数不确定 的错误提示 创建函数索引 ORA 30553 函数不确定 原函数如下 create or repla
  • Hibernate HQL绑定变量

    Hibernate HQL查询 插入 更新 update 实例 1 实体查询 有关实体查询技术 其实我们在先前已经有多次涉及 比如下面的例子 String hql from User user List list session Creat
  • 毕业设计 - 个人博客系统的设计与实现【源码+论文】

    文章目录 前言 一 项目设计 1 模块设计 博主功能用例 游客功能用例 2 实现效果 二 部分源码 项目源码 前言 今天学长向大家分享一个 Java web 毕业设计 项目 个人博客系统的设计与实现 一 项目设计 1 模块设计 博主功能用例
  • Linux驱动_多点电容触摸

    一丶Linux下多点电容触摸驱动框架 电容触摸屏IC是FT5426 为IIC协议芯片 因此需要编写IIC驱动 触摸IC会发出中断信号 并在中断服务函数中上报信息 因此需要编写中断框架 触摸屏向Linux内核上报的信息都属于Input子系统
  • 基于Unity3d 引擎的Android游戏优化

    最近项目进入收尾阶段 之前对项目做了很多优化 mesh合并 减少DrawCall和模型骨骼以及物理计算 合并材质球 优化代码等等 在IOS上还好 但是Android上 试过几款手机 从低端到高端 发现性能还是很差 所以又花了几天来研究摸索
  • C#中索引器

    C 中索引器和数组的使用类似 public class Test private readonly string name new string 10 public string this int index get return name
  • 【论文速览】根据人脑fMRI信号重建图像 Image Reconstruction from human brain activity

    文章目录 前言 文章一 研究背景 主要方法 部分实验结果 总结与思考 参考资料 文章二 研究背景 主要方法 部分实验结果 总结与思考 前言 人类的视觉神经系统对于真实世界的视觉刺激有着非凡的感知与理解能力 比如我们能够准确地识别物体距离和三
  • (java 基础知识) Java 安全套接字--javax.net.ssl

    有关SSL的原理和介绍在网上已经有不少 对于Java下使用keytool生成证书 配置SSL通信的教程也非常多 但如果我们不能够亲自动手做一个SSL Sever和SSL Client 可能就永远也不能深入地理解Java环境下 SSL的通信是
  • leetcode-2 Add Two Numbers(两数相加)

    题目描述 给出两个 非空 的链表用来表示两个非负的整数 其中 它们各自的位数是按照 逆序 的方式存储的 并且它们的每个节点只能存储 一位 数字 如果 我们将这两个数相加起来 则会返回一个新的链表来表示它们的和 您可以假设除了数字 0 之外
  • 下一个区块链风口必备——跨链互操作

    Moonbeam是首个原生的跨链消息开发者平台 旨在通过结合波卡生态独有的XCM技术和Moonbeam首创的预编译技术为用户带来无缝且丝滑的跨链互操作性体验 让用户在无意中享受多链部署带来特色的同时消除链与链之间的隔阂 除外 Moonbea
  • uboot启动流程分析

    FS4412 SOC的启动过程 在图中有 Cortax A9 其是芯片核心 也就是中央处理器 CPU Internal Rom 是一个只读存储器 里面存储了代码 总大小为64K 它的功能是用于读写pin脚 其作用是用来告诉系统从何处去读取u
  • #13文献学习--边缘计算的计算卸载建模综述

    文献 A survey on computation offloading modeling for edge computing 一 介绍 边缘计算 在网络边缘 代表云服务的下游数据和代表物联网服务的上游数据上执行计算 优势 计算或云计算
  • 【react】state的总结

    state是组件对象最重要的属性 值是对象 组件被称为 状态机 通过更新组件的state来更新对应的页面显示 重新渲染组件 组件中render方法中的this指向组件的实例对象 组件自定义的方法中的this指向undefined 如何解决
  • ffpmeg相对无损转换mkv到mp4,保留标签、封面等元数据

    其实这个无损是相对无损 不是绝对无损 因为mkv封装支持的格式 标签等是比mp4封装要多的 比如mkv可以封装wav音频 mp4不能封装wav音频 所以这里的无损的前提是该mkv的媒体流 标签 TAG 封面图等 都是Mp4本身支持的 才能无
  • 图(基本概念)

    本章重点 图的基本概念和基本性质 图的存储结构 邻接矩阵 邻接表 邻接多重表 十字链表 及其特性 存储结构之间的转化 基于存储结构上的遍历操作和各种应用 拓扑排序 最小生成树 最短路径 关键路径 等 算法难度大 主要掌握深度优先搜索和广度优
  • otsu算法

    otsu法 最大类间方差法 有时也称之为大津算法 使用的是聚类的思想 把图像的灰度数按灰度级分成2个部分 使得两个部分之间的灰度值差异最大 每个部分之间的灰度差异最小 通过方差的计算来寻找一个合适的灰度级别 来划分 所以 可以在二值化的时候
  • 【Redis】缓存问题

    用户数据一般都是存储在数据库中 数据库则落在磁盘上 而磁盘的I O速度是计算机中最慢的硬件 当用户的访问量在某一个时间段突然上升 数据库就很容易崩溃 为了避免用户直接访问数据库 所以会使用缓存数据库 Redis 作为缓冲层 Redis 是内
  • mysql topn_TopN语句

    TopN语句常用于计算实时数据中对某个指标的最大或者最小的前N个数据的筛选 Flink SQL可以基于 OVER窗口操作灵活地完成TopN的工作 语法 SELECT FROM SELECT ROW NUMBER OVER PARTITION
  • 基于FPAG高精度频率与电压测量系统

    基于FPAG高精度频率与电压测量系统 1 系统功能与组成 本次设计的是一个测量频率与电压的系统 其中方波频率范围 在5k 50k内可以精确到小数点后两位测量原理为计算待测频率的周期 电压采用12位双路AD 采样频率为50Mhz 测量的值通过
  • 使用 UpdatePanel

    1 概述 ASP NET UpdatePanel 控件能让你创建丰富的 以客户为中心的 Web 应用程序 使用 UpdatePanel 控件 可以刷新选择的页面部分而不是使用回发来刷新整个页面 这就像是执行了一个局部页面更新一样 包含一个