ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel

ASP.NET_AJAX入门系列:使用UpdatePanel控件.doc ASP.NET_AJAX入门系列:使用UpdatePanel控件.docASP.NET_AJAX入门系列:使用UpdatePanel控件.doc 立即下载

本文简单介绍一下在母版页中使用UpdatePanel控件,翻译自官方文档。

 

主要内容

1.添加UpdatePanel控件到Content Page

2.通过Master Page刷新UpdatePanel

 

一.添加UpdatePanel控件到Content-Page

1.添加一个新的Master Page,并切换到设计视图。

2.在工具箱中AJAX Extensions标签下双击ScriptManager控件添加到页面中,确保ScriptManager控件添加在ContentPlaceHolder控件之外。

3.在ContentPlaceHolder控件添加文本“Master Page”。

4.在工具箱的HTML标签下,拖动Horizontal Rule(横线)到文本之后,页面如下:

5.创建一个Content Page,选择它的Master Page为我们刚才创建的页面。

在解决方案管理器中点击右键,并选择Add New Item菜单命令,在Add New Item对话框中选择Select master page复选矿,并单击OK按钮。

6.在Content页面中的Content控件中输入Content Page,并添加一个UpdatePanel控件。

7.在UpdatePanel控件中添加Calendar控件。

8.保存并按Ctrl + F5运行。

9.单击Calendar控件中的上月和下月按钮,页面并没有整页刷新。

二.通过Master Page刷新UpdatePanel

在该例子中我们将在Master Page中添加一些控件,它们将引发一个异步提交,同时在Content页面中刷新UpdatePanel。

1.在Master Page中切换到设计视图。

2.添加一些文本和两个按钮到页面中,设置一个按钮的ID属性和Text属性分别为DecrementButton和“-”,设置另一个按钮的ID属性和Text属性分别为IncrementButton和“+”。

3.选择+按钮,在属性窗口的Click事件框中输入MasterButton_Click,对-按钮再重复做一次。

4.在控件之外双击页面添加Page_Load事件处理。

5.在Page_Load事件处理中添加如下代码,注册两个按钮为异步提交按钮。.添加如下代码创建一个MasterButton_Click事件处理。.在Master Page中创建一个公有的属性Offset,来显示所选择的日期和当天之差。.在Content Page中,切换到设计视图并双击Calendar控件添加一个SelectionChanged事件处理,当用户选择日期时设置Offset属性。

protected void Page_Load(object sender, EventArgs e)

{
    ScriptManager1.RegisterAsyncPostBackControl(DecrementButton);

    ScriptManager1.RegisterAsyncPostBackControl(IncrementButton);

}

6

protected void MasterButton_Click(object sender, EventArgs e)
{
    
switch (((Control)sender).ID)
    
{
        
case "IncrementButton":

            
this.Offset = this.Offset + 1;

            
break;

        
case "DecrementButton":

            
this.Offset = this.Offset - 1;

            
break;
    }


    ((UpdatePanel)ContentPlaceHolder1.FindControl(
"UpdatePanel1")).Update();

    Calendar cal 
= ((Calendar)ContentPlaceHolder1.FindControl("Calendar1"));

    DateTime newDateTime 
= DateTime.Today.Add(new TimeSpan(Offset, 0, 0, 0));

    cal.SelectedDate 
= newDateTime;

}

7

public Int32 Offset
{
    
get
    
{ return (Int32)(ViewState["Offset"] ?? 0); }

    
set
    
{ ViewState["Offset"] = value; }
}

8

9.添加如下代码到SelectionChanged事件处理中。.在Content Page页面的Page_Load事件中添加如下代码。.添加@ MasterType标记到页面中,以便可以作为强类型属性引用Master Page页面的Offset属性。12.在Content Page中切换到设计视图,并选择UpdatePanel控件。

protected void Calendar1_SelectionChanged(object sender,EventArgs e)
{
    DateTime selectedDate 
= Calendar1.SelectedDate;

    Master.Offset 
=

       ((TimeSpan)Calendar1.SelectedDate.Subtract(

       DateTime.Today)).Days;
}

10

protected void Page_Load(object sender, EventArgs e)
{
    DateTime newDateTime 
=

        DateTime.Today.Add(
new

        TimeSpan(Master.Offset, 
0, 0, 0));

    Calendar1.SelectedDate 
= newDateTime;
}

11

<%@ MasterType VirtualPath="MasterPage.master" %>

 

13.在属性窗口中设置UpdateMode为Conditional。

14.保存并按Ctrl + F5运行。

15.在Calendar控件中单击上一月和下一月按钮,可以看到整页刷新。

16.选择一个日期并单击Master Page中的按钮,可以看到仍然没有整页刷新。

[翻译自官方文档] 

解决方法:用AJAX的UpdatePanel之后再用RequiredFieldValidator验证导致第二次验证无效 解决办法:用AJAX的UpdatePanel之后再用RequiredFieldValidator验证导致第二次验证无效 立即下载

相关推荐

asp.net使用母版页中使用ajax脚本取数据

方法如下:   1、 页面中拖入ScriptManager。以便于使用Ajax脚本。同时放在其它客户端控件,用于触发NetPost方法。这里不列出客户端控件。 代码如下: <asp ID=”smMaster” runat=”server” ScriptMode=”Auto” EnablePageMethods=”true”> </asp>   2、在Master源码中编写js 代码如下: function NetPost() { //创建实例 var wRequest = new Sys.Net.WebRequest(); //设置

asp.net ajax学习系列功能强大的UpdatePanel控件

先给一个简单的例子,后面给一个比较复杂的例子。 改进后的UpdatePanel使页面部分更新(Partial-Page Updates)实现起来非常容易。 要想在已有web页面或新建页面中加入部分更新内容,都十分容易,下面几个步骤: <1>在页面中加入ScriptManager控件。并保证ScriptManager控件的EnablePartialRendering属性值为true...

weixin_33798152的博客 326

分子模拟入门教程 | 低调使用 建议收藏

该方法只需要原子的核电荷和少数模拟的环境参数作为输入,所有的性质都是通过求解薛定谔方程得到的,不需要使用任何经验参数。经典的原子水平的分子模拟已经成为提高我们对材料科学和生命系统中分子过程理解的最流行的方法之一。全原子模拟是一种非常强大的以原子分辨率呈现信息的方法,因为在原子模拟中,一个粒子代表一个特定的原子。随着计算机硬件和模拟技术的快速发展,分子模拟不仅可以解决基本的、常规的化学问题,还可以应用于各种复杂体系。然而,由于问题的复杂性以及严重依赖于现象的现实情况,最好是逐案确定合适的模拟方法。

pysonger的博客 783

ASP.NET AJAX扩展控件

文章目录ASP.NET AJAXASP.NET AJAX扩展控件1.scriptManager ASP.NET AJAX ASP.NET AJAX扩展控件 1.scriptManager 使用内部按钮刷新UpdatePanel控件 <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <Co

Harris-H的博客 845

React 源码解析 | Reconcile协调过程

上篇讲了React的工作流程,这篇详细的讲一下render过程中的beginWork函数,也就是深度优先创建Fiber树中"递"的过程。beginWork函数传入当前已经创建好的Fiber节点,返回创建/复用的第一个子FIber节点,也就是wip.child在renderRoot中,在开始创建整棵FIber树之前,会先调用prepareRefreshStack创建/复用一个新的HostRootFiber。

weixin_40710412的博客 1220

图神经网络实战(8)——图注意力网络(Graph Attention Networks, GAT)

图注意力网络 (Graph Attention Networks, GAT) 是对图卷积网络 (Graph Convolutional Network, GCN) 的改进,提出了一种通过自注意力 (self-attention) 过程计算的加权因子,而不是使用静态的归一化系数。在本节中,我们介绍了 GAT 架构。通过从线性变换到多头注意力的四个主要步骤,了解了 GAT 的工作原理,并在 NumPy 中从零开始构建了 GAT 层。最后,将 GAT 模型应用于 Cora 和 CiteSeer 数据集。

盼小辉丶的博客 1万+

AJAX.NET的UpdatePanel全面应用(3) (客户端)

 前面两篇主要都是服务端方面的,今天这个都是客户端的,一样还是看WebCast上的视频l          PageRequestManager类 (以下简称为PRM) getInstance静态方法–获得全局唯一的PageRequestManager实例 isInAsyncPostBack属性–是否正处在一个异步更新过程中 abortPostBack方法–

黑色空间 1568

asp.net 母版与ajax使用 updatepanel,ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel...

本文简单介绍一下在母版页中使用UpdatePanel控件,翻译自官方文档。主要内容1.添加UpdatePanel控件到Content Page2.通过Master Page刷新UpdatePanel一.添加UpdatePanel控件到Content-Page1.添加一个新的Master Page,并切换到设计视图。2.在工具箱中AJAX Extensions标签下双击ScriptManager控件...

weixin_29964507的博客 388

AI: 机器学习的模型是如何训练的?(在试错中学习)

一句话理解机器学习一般训练过程 :通过有标签样本来调整(学习)并确定所有权重Weights和偏差Bias的理想值。 训练的目标:最小化损失函数 (损失函数下面马上会介绍) 机器学习算法在训练过程中,做的就是:检查多个样本并尝试找出可最大限度地减少损失的模型;目标就是将损失(Loss)最小化 在这里插入图片描述 上图就是一般模型训练的一般过程(试错过程),其中 模型: 将一个或多个特征作为输入,然后返回一个预测 (y’) 作为输出。为了进行简化,不妨考虑一种采用一个特征并返回一个预测的模型,如下公式

HowieXue 薛永浩的博客 3万+

IO Virtualization with Virtio.part 2 [十三]

通过对virtio_device_id 中的 device 和 vendor 的值进行比较,我们找到对应的 virtio 驱动,由于这里我们使用 i2c virtio 为例,所以调用 virtio_i2c_probe 进行 virtio i2c 设备的初始化。在和 virtio mmio 设备交互时我们会读取 VIRTIO_MMIO_DEVICE_ID 和 VIRTIO_MMIO_VENDOR_ID,并将其值写入 virtio_device_id 中,这个就会用作后面和 virtio 设备驱动的匹配参数。

cxjczy1990的博客 1211
上一篇: ASP.NET AJAX入门系列(8):自定义异常处理
下一篇: ASP.NET AJAX入门系列(10):Timer控件简单使用
vainnetwork
博客等级 码龄20年 17粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值