asp.net自带的异步刷新控件使用

一直都是使用jquery的$.ajax,由于刚刚加入的公司是用asp.net的,webform与之前的ajax加在一起显得很混乱,后来发现asp.net已经封装了一下ajax功能,就查了一下,并且做了测试,写出来,备忘:

前台代码:

复制代码
 1             <asp:ScriptManager ID="ScriptManager1" runat="server" />
 2             <asp:TextBox ID="tboutup" runat="server"></asp:TextBox> 3             <asp:Button ID="btnouttg" Text="非异步按钮,但是被作为触发器"
 4                 OnClick="Button1_Click" runat="server" />
 5             <asp:Button ID="btnoutnotg" Text="非异步按钮" runat="server" />
 6             <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
 7                 <Triggers>
 8                     <asp:AsyncPostBackTrigger ControlID="btnouttg" />
 9                 </Triggers>
10                 <ContentTemplate>
11                     <asp:TextBox ID="tbinup" runat="server"></asp:TextBox>
12                     <asp:Button ID="btninup" Text="异步按钮" OnClick="btninup_Click" runat="server"  />
13                 </ContentTemplate>
14             </asp:UpdatePanel>
复制代码

后台代码:

复制代码
 1 public partial class UpdatePanelTriggers : System.Web.UI.Page
 2 {
 3     protected void Page_Load(object sender, EventArgs e)
 4     {
 5 
 6     }
 7     protected void Button1_Click(object sender, EventArgs e)
 8     {
 9         tboutup.Text += tboutup.Text;
10         tbinup.Text += tbinup.Text;
11     }
12 
13     protected void btninup_Click(object sender, EventArgs e)
14     {
15         tboutup.Text += tboutup.Text;
16         tbinup.Text += tbinup.Text;
17     }
18 }
复制代码

 

 
    1. 非异步按钮,一旦被绑定,便不会引起全局刷新,只能引起局部刷新了。
    2. 当某一回发事情被触发时,判断是否为UpdatePanel的异步事件,若是,则将所有的viewstate带回服务器,处理后,UpdatePanel内部控件的视图状态更新,其它的不更新。
    3. 对于触发UpdatePanel刷新的事件:
      1. ​在UpdatePanel的字标签<Triggers>中指定能触发异步刷新的控件或者事件。
      2. 将UpdateMode设为Always则页面上所有的回发事件都会触异步刷新。
      3. 将UpdateMode设为Conditional的时候,只有Triggers定义的触发以及UpdatePanel的子控件的事件才会触发。
      4. 将ChildrenAsTriggers设为false时,子控件postback时候无法触发异步刷新(这个控件同时也无法触发页面的事件,所以。。。废了。。。)。
      5. UpdatePanel的子控件只能触发自己的,无法触发外层UpdatePanel刷新。
      6. 显式调用UpdatePanel的Update方法:
          使用此方法一般是想在后台判定是否局部更新UpdatePanel,此时,要禁止UpdatePanel未经允许的刷新,所以,要设Conditional,且ChildrenAsTriggers设为false,然后在后台设置UpdatePanel.Update();
posted @   ensleep  阅读(8155)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示