Asp.net Ajax 学习笔记4 UpdatePanel的使用(上)
来源:互联网 发布:淘宝购物评级掉到2级了 编辑:程序博客网 时间:2024/05/08 18:50
ScriptManager的AllowCustomErrorsRedirect属性允许用户自定义错误导向页,将此属性设置为true,配合WebConfig的customErrors可以使ScriptManager传输发生错误时自动导向用户定义的错误导向页。
ScriptManager的OnAsyncPostBackError事件,当在服务端发生异常时,此事件会触发,要触发此事件AllowCustomErrorsRedirect属性必须为false,否则此事件不会触发。在此事件处理中,可将服务端异常信息付给客户端异常信息,如以下代码
ScriptManager.GetCurrent(this).AsyncPostBackErrorMessage = e.Exception.Message;
那么在客户端如何处理呢?首先得到PageRequestManager的一个实例,并给endRequest方法加入一个事件处理器。在此事件处理器中首先判断Args参数是否能得到异常对象,通过调用get_error方法,如果得到的错误不为空,那么表示服务端发生了异常,调用set_errorHandled方法,标记此异常已经被处理过。剩下的工作就是通过客户端代码呈现这个错误的提示信息。注意Args参数中get_error()方法得到错误对象之后,这个错误对象的message是服务端的AsyncPostBackErrorMessage
UpdatePanel可以完全由服务端加载,也就是说可以直接用代码动态生成
UpdatePanel up = new UpdatePanel();
up.ID = "UpdatePanel1";
this.Form.Controls.Add(up);
LiteralControl lc = new LiteralControl(DateTime.Now.ToString());
up.ContentTemplateContainer.Controls.Add(lc);
Button btn = new Button();
btn.Text = "Refresh";
up.ContentTemplateContainer.Controls.Add(btn);
up.ID = "UpdatePanel1";
this.Form.Controls.Add(up);
LiteralControl lc = new LiteralControl(DateTime.Now.ToString());
up.ContentTemplateContainer.Controls.Add(lc);
Button btn = new Button();
btn.Text = "Refresh";
up.ContentTemplateContainer.Controls.Add(btn);
//得到UpdatePanelTrigger的Initialize方法的反射方法对象
private static MethodInfo triggerInitMethod =
typeof(UpdatePanelTrigger).GetMethod(
"Initialize",
BindingFlags.NonPublic | BindingFlags.Instance);
protected void Page_Load(object sender, EventArgs e)
...{
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = "Button1";
this.UpdatePanel1.Triggers.Add(trigger);
if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
...{
triggerInitMethod.Invoke(trigger, null);
}
}
private static MethodInfo triggerInitMethod =
typeof(UpdatePanelTrigger).GetMethod(
"Initialize",
BindingFlags.NonPublic | BindingFlags.Instance);
protected void Page_Load(object sender, EventArgs e)
...{
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = "Button1";
this.UpdatePanel1.Triggers.Add(trigger);
if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
...{
triggerInitMethod.Invoke(trigger, null);
}
}
- Asp.net Ajax 学习笔记4 UpdatePanel的使用(上)
- Asp.net Ajax 学习笔记2 UpdatePanel的使用(上)
- Asp.Net Ajax 学习笔记3 UpdatePanel的使用(上)
- Asp.net Ajax 学习笔记2 UpdatePanel的使用(上)
- Asp.net Ajax 学习笔记5 UpdatePanel的使用(下)
- Asp.net Ajax 学习笔记5 UpdatePanel的使用(下)
- ASP.Net Ajax学习笔记(1):UpdatePanel控件
- ASP.Net Ajax学习笔记(1):UpdatePanel控件
- 了解 ASP.NET AJAX UpdatePanel 触发器——ASP.NET AJAX学习笔记“出自msdn”
- asp.net ajax学习系列功能强大的UpdatePanel控件
- asp.net ajax学习系列功能强大的UpdatePanel控件(转)
- asp.net ajax学习系列功能强大的UpdatePanel控件
- asp.net ajax学习系列功能强大的UpdatePanel控件
- asp.net ajax 使用updatepanel进行更新后的提示
- asp.net ajax 使用updatepanel进行更新后的提示
- asp.net ajax 使用updatepanel进行更新后的提示
- asp.net ajax 使用updatepanel进行更新后的提示
- 深入浅出ASP.Net 2.0 Ajax学习之旅随笔(四)-UpdatePanel与文件上传(FileUpload)的一起使用的解决方法
- 第三篇:JAVA字符编码系列三:Java应用中的编码问题
- 如何辨别安装的 linux 是 32位 的还是 64位 系统?
- Oracle性能误区--MTS,RAC,分区,并行查询
- AjaxControlToolkit的安装与使用
- graph.exe
- Asp.net Ajax 学习笔记4 UpdatePanel的使用(上)
- grpconv.exe
- ERROR 1033: Incorrect information in file: './qs_52_table/qs_member_table.frm' mysql数据库迁移
- GrpWise.exe
- ASP.NET AJAX服务器端控件官方视频教程 下载--英文
- 深入了解WebLogic的类装载机制详解(图)
- Spring依赖关系配置(续)
- 读取文件并在屏幕上显示内容
- gsicon.exe