欢迎光临爱时尚女性网
 

AJAX的注册起动脚本功能

2013-3-5 编辑:admin 来源:爱时尚女性网 阅读次数:514
  导读: 最近的项目中一直在使用Atlas July CTP,自从Atlas正式更名后,连续推出了Beta和Beta2两个版本,但是我一直在观望,原因就是Beta版本不稳定而且升级太麻烦了。一日偶然看到了杨丹的这篇随笔,突然发现原来ScriptManager可以注册在客户端部分刷新的UpdatePanel中注册启动后执行的...

最近的项目中一直在使用Atlas July CTP,自从Atlas正式更名后,连续推出了Beta和Beta2两个版本,但是我一直在观望,原因就是Beta版本不稳定而且升级太麻烦了。一日偶然看到了杨丹的这篇随笔,突然发现原来ScriptManager可以注册在客户端部分刷新的UpdatePanel中注册启动后执行的javaScript!这可是困扰了我很长时间的一个问题!这样不但可以在使用UpdatePanel的情况下使用Javascript弹出对话框,也可以在开发使用Javascript脚本的服务器控件的时候,使控件的起动脚本得以执行,这样原来的和UpdatePanel不兼容的控件可以很容易的改为Ajax enabled^_^。
牋 不过,令人不解的是不知道处于什么考虑,RegisterStartupScript函数竟然实现为了类的静态函数,可是没有ScriptManager的UpdatePanel更本不能执行啊,这样还需要多打几个字!另外,需要注意的是第一个参数是UpdatePanel的实例,如果在页面中有多个UpdatePanel,如果每个UpdatePanel的UpdateMode都是“always”[默认值]的话,那么你使用那个UpdatePanel的实例作为参数都可以;如果每个UpdaePanel的UpdateMode=conditional,那么你必须使用正在更新的那个UpdatePanel作为参数,这样脚本才能起作用。下面是我作的一个简单的示例:
页面标记
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
http://www.w3.org/1999/xhtml">

Untitled Page



牋牋牋牋牋
牋牋牋牋牋

牋牋牋牋牋

牋牋牋牋牋
LinkButton

牋牋牋牋牋牋牋
牋牋牋牋牋牋牋牋牋
牋牋牋牋牋牋牋牋牋


牋牋牋牋牋
牋牋牋牋牋牋牋
牋牋牋牋牋牋牋牋牋
牋牋牋牋牋牋牋牋牋 LinkButton
牋牋牋牋牋牋牋

牋牋牋牋牋

牋牋牋牋牋

牋牋牋

牋牋牋牋牋牋牋牋牋

牋牋牋牋牋牋牋牋牋
Please waiting, retrieving data from server


牋牋牋牋牋牋牋牋牋  



代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
牋牋牋
}
牋 protected void LinkButton1_Click(object sender, EventArgs e)
牋 {
牋牋牋 System.Threading.Thread.Sleep(1000);
牋牋牋 TextBox1.Text = DateTime.Now.ToLongTimeString();
牋牋牋 TextBox2.Text = TextBox1.Text;
牋牋牋 string js = "alert('ok button1 clicked!')";
牋牋牋 Microsoft.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel2, this.GetType(), "btn1clicked", js, true);
牋 }
牋 protected void LinkButton2_Click(object sender, EventArgs e)
牋 {
牋牋牋 System.Threading.Thread.Sleep(900);
牋牋牋 TextBox2.Text = DateTime.Now.ToLongTimeString();
牋牋牋 TextBox1.Text = TextBox2.Text;
牋牋牋 string js = "alert('ok button 2 clicked!')";

牋牋牋 Microsoft.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel2, this.GetType(), "btn2clicked", js, true);

牋 }
}牋 BTW,我在使用时发现一个问题,不知道是个Bug还是我使用不当,我在调试中发现UpdatePanel.IsInPartialRendering的值始终是false!希望有高人指点一下。

文章出自:爱时尚女性网www.aspjc.com,尊重版权是美德,转载请保留原地址,感谢合作!

 
 
链接交换请联系:QQ:790646582 首页链接要求百度快照在一周以内,不符合以上要求的各站,我们将定期把友情连接转入内页,谢谢合作。
Copyright @ 2012-2015 爱时尚女性网 保留所有权利吉ICP备14005127号-1 服务QQ:175529508 e-mail:zk8312@163.com
本站部分资源来自网友上传,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。