• 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代码写成字符串用这两个函数输出。这样就可以轻松的和服务器交互了。
  • 相关阅读:
    LeetCode--342--4的幂
    LeetCode--326--3的幂
    python3-
    LeetCode--303--区域和检索
    LeetCode--292--Nim游戏
    《Cracking the Coding Interview》——第16章:线程与锁——题目6
    《Cracking the Coding Interview》——第16章:线程与锁——题目5
    《Cracking the Coding Interview》——第16章:线程与锁——题目4
    《Cracking the Coding Interview》——第16章:线程与锁——题目3
    《Cracking the Coding Interview》——第16章:线程与锁——题目2
  • 原文地址:https://www.cnblogs.com/yunzhongniao19915/p/4141357.html
Copyright © 2020-2023  润新知