ClientScript.RegisterStartupScript()与ScriptManager.RegisterStartupScript()

page类:
1、页头中inherits标识继承于哪个类。partial标

识局部的,类的一部分,编译的时候 把同名的

partial合并成一个完整的class文件,然后编译成

中间文件。
2、.net页面的生命周期,控件的生命周期,生命周

期的应用。页面-属性-document-trace设为true,

运行页面可以看到跟踪信息。
3、统一验证身份的方法,写一个验证的类文件(类

文件中添加this.Load+=new eventhander

(thisLoad) void thisLoad(object

sender,eventarge e){if(session["username"]

==null){response.redirect("login.aspx");}})

,让需要验证的页继承这个类。(第五集26分钟)
4、page类的属性:page.ispostback

(),clientscript。45分钟,有个js类,方便输出

js题型。
5、回调技术(52分钟),无刷新局部判断(要比

ajax复杂)。

clientscript  Page.ClientScript.RegisterStartupScript()介绍

page.RegisterStartupScript在新的版本中已经过期了 取而代之的是其他两种方法。

ScriptManager和ClientScript的区别,他俩的方法是一样的,只是在特殊的场合要注意使用。

ScriptManager适用在特殊的场合,那么我们在控件中如何来进行区分应该使用哪一个呢?其实可以通过寻找控件的parent,判断是否有updatepanel,如果有就用ScriptManager;没有的话当然用ClientScript,避免每次postback操作时控件都要进行资源文件的注册。也就是说 是否兼容ajax的问题,ScriptManager兼容于ajax,在ajax updatepanel中使用ClientScript是无效的。这里是要特别注意的,本人就因为这个折磨了一下午了。

使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本。 也就是说利用.net函数向页面中添加scrip函数

参数

type

要注册的启动脚本的类型。

key

要注册的启动脚本的键。

script

要注册的启动脚本文本。

addScriptTags

指示是否添加脚本标记的布尔值.

tips:

启动脚本由它的键和类型唯一标识。具有相同的键和类型的脚本被视为重复脚本。只有使用给定的类型和键对的脚本才能使用该页面进行注册。试图注册一个已经注册的脚本不会创建重复的脚本。

调用 IsStartupScriptRegistered 方法以确定具有给定的键和类型对的启动脚本是否已经注册,从而避免不必要的添加脚本尝试。

在 RegisterStartupScript 方法的此重载中,使用 addScriptTags 参数可指示 script 参数中提供的脚本是否包装在 <script> 元素块中。将 addScriptTags 设置为 true 指示脚本标记将自动添加。

RegisterStartupScript 方法添加的脚本块在页面加载完成但页面的 OnLoad 事件引发之前执行。

举例说明

<%@ Page Language="C#"%>
<script runat="server">
public void Page_Load(Object sender, EventArgs e)
{
// Define the name and type of the client scripts on the page.
String csname1 = "PopupScript";
String csname2 = "ButtonClickScript";
Type cstype = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the startup script is already registered.
if (!cs.IsStartupScriptRegistered(cstype, csname1))
{
String cstext1 = "alert('Hello World');";
cs.RegisterStartupScript(cstype, csname1, cstext1, true);
}
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
{
StringBuilder cstext2 = new StringBuilder();
cstext2.Append("<script type=text/javascript> function DoClick() {");
cstext2.Append("Form1.Message.value='Text from client script.'} </");
cstext2.Append("script>");
cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
}
}
</script>
<html>
<head>
<title>ClientScriptManager Example</title>
</head>
<body>
<form id="Form1"
runat="server">
<input type="text" id="Message"> <input type="button" value="ClickMe" onclick="DoClick()">
</form>
</body>
</html>
注意两个函数的使用,一个是start添加到页面加载之前,在pageload之前执行,另外一个是在加载页面之后执行。这两个函数的主要作用是将scrip动态的嵌入到.net的代码中,适合处理大批的js代码,比如你要组一个js的消息提示框,需要和服务器交互,那么你可以把js代码写成字符串用这两个函数输出。这样就可以轻松的和服务器交互了。

你可能感兴趣的:(ClientScript.RegisterStartupScript()与ScriptManager.RegisterStartupScript())