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

本文介绍了如何在ASP.NET应用程序中使用母版页和UpdatePanel控件实现页面的部分更新功能,包括添加控件、配置母版页及内容页等关键步骤。

======================================================
注:本文源代码点此下载
======================================================

[翻译自官方文档]

作者:terrylee

出处:http://terrylee.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

本文简单介绍一下在母版页中使用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事件处理中添加如下代码,注册两个按钮为异步提交按钮。

protected void page_load(object sender, eventargs e)

{

scriptmanager1.registerasyncpostbackcontrol(decrementbutton);

scriptmanager1.registerasyncpostbackcontrol(incrementbutton);

}

6.添加如下代码创建一个masterbutton_click事件处理。

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.在master page中创建一个公有的属性offset,来显示所选择的日期和当天之差。

public int32 offset

{

get

{ return (int32)(viewstate["offset"] ?? 0); }

set

{ viewstate["offset"] = value; }

}

8.在content page中,切换到设计视图并双击calendar控件添加一个selectionchanged事件处理,当用户选择日期时设置offset属性。

9.添加如下代码到selectionchanged事件处理中。

protected void calendar1_selectionchanged(object sender,eventargs e)

{

datetime selecteddate = calendar1.selecteddate;

master.offset =

((timespan)calendar1.selecteddate.subtract(

datetime.today)).days;

}

10.在content page页面的page_load事件中添加如下代码。

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标记到页面中,以便可以作为强类型属性引用master page页面的offset属性。

12.在content page中切换到设计视图,并选择updatepanel控件。

13.在属性窗口中设置updatemode为conditional。

14.保存并按ctrl + f5运行。

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

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


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
学生社团系统-学生社团“一站式”运营管理平台-学生社团管理系统-基于SSM的学生社团管理系统-springboot学生社团管理系统.zip-Java学生社团管理系统开发实战-源码 更多学生社团系统: SpringBoot+Vue学生社团“一站式”运营管理平台源码(活动管理+成员考核+经费审批) Java学生社团管理系统开发实战:SSM升级SpringBoot(招新报名+场地预约+数据看板) 基于SpringSecurity的社团管理APP(移动端签到+权限分级+消息推送) 企业级社团数字化平台解决方案(SpringBoot+Redis缓存+Elasticsearch活动搜索) 微信小程序社团服务系统开发(活动直播+社团文化墙+成员互动社区) SpringBoot社团核心源码(多角色支持+工作流引擎+API接口开放) AI赋能社团管理:智能匹配兴趣标签+活动热度预测+成员贡献度分析(附代码) 响应式社团管理平台开发(PC/移动端适配+暗黑模式+无障碍访问) 完整学生社团系统源码下载(SpringBoot3+Vue3+MySQL8+Docker部署) 高校垂直领域社团平台:百团大战系统+社团星级评定+跨校活动联盟 适用对象:本代码学习资料适用于计算机、电子信息工程、数学等专业正在做毕设的学生,需要项目实战练习的学习者,也适用于课程设计、期末大作业。 技术栈:前端是vue,后端是springboot,项目代码都经过严格调试,代码没有任何bug! 核心管理:社团注册、成员管理、权限分级 活动运营:活动发布、报名签到、场地预约 资源服务:经费申请、物资管理、文档共享 数据分析:成员活跃度、活动效果评估、社团影响力排名
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值