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" οnclick="DoClick()"> </form> </body> </html>
-
注意两个函数的使用,一个是start添加到页面加载之前,在pageload之前执行,另外一个是在加载页面之后执行。这两个函数的主要作用是将scrip动态的嵌入到.net的代码中,适合处理大批的js代码,比如你要组一个js的消息提示框,需要和服务器交互,那么你可以把js代码写成字符串用这两个函数输出。这样就可以轻松的和服务器交互了。