Page.ClientScript 与 ClientScript 的关系
这二者实际上是一个东西,后者只是省略了 Page。都是获取用于管理脚本、注册脚本和向页添加脚本的 ClientScriptManager 对象。
ScriptManager 与 ClientScriptManager 区别
他们的名称空间均是 System.Web.UI。
- ScriptManager 是用于管理 AJAX 脚本库和脚本文件;
- ClientScriptManager 用于管理普通的 script,就比如向客户端输出一个 <script>alert("");</script>。
ClientScript 与 ClientScriptManager 区别
ClientScript 是 ClientScriptManager 的对象,ClientScriptManager 是类。
Page.RegisterClientScriptBlock 与 Page.RegisterStartupScript(也可省略 Page)
微软已经不推荐这样写,而应该是 ClientScript.RegisterClientScriptBlock 或 ClientScript.RegisterStartupScript。
ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "window.open('default2.aspx');", true);
其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。
第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.
第三个脚本函数的名字,随便起。
第四个是脚本内容。
第五个是标明是否再添加脚本标签,如果第四个参数里包含了 <script> </script>标签,此处则为false,否则为true。
实例:
protected void OnEditing(object sender, GridViewEditEventArgs e)
{
int id = Int32.Parse(GridView1.Rows[e.NewEditIndex].Cells[1].Text);///得到你要编辑文章的id
String Url = "AddArticle.aspx?ID=" + id.ToString();AddArticle.aspx是你要找到编辑的页面
ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "redirectMe", "location.href='" + Url + "';", true);
----------------------------------------
需要注意的是第4个参数是js脚本内容,每一条语句结束加分号
注意不是Page.RegisterClientScriptBlock
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "alert('提示信息')", true);
以下自己总结的几种方案,可以放到程序中试试
//方案一
//ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alert", "选择休假", true);
//方案二
//Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('选择休假日期不能为零!')</script>");
//方案三
//ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('选择休假日期不能为零!')</script>");
//方案四
//string script = "alert('选择的调休假不能大于剩余休假!');";
//ScriptManager.RegisterStartupScript(this, GetType(), "Submit", "alert('选择的调休假不能大于剩余休假!');", true);
//得到一个ClientScriptManager对象
//方案五
//ClientScriptManager csm = this.ClientScript;
//csm.RegisterOnSubmitStatement(this.GetType(), "sufei1", "return window.confirm('你真的要提交界面吗');");
//方案六
//ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "redirectMe", "location.href='Default2.aspx';", true);