zoukankan      html  css  js  c++  java
  • RegisterStartupScript和RegisterClientScriptBlock的用法

    RegisterStartupScript和RegisterClientScriptBlock的用法
    RegisterStartupScript(key, script)
    RegisterClientScriptBlock(key, script)


      这两个方法的作用都是从后台向前台写脚本,且都接受两个字符串作为输入。第二个参数 script 是要插入到页面中的客户端脚本,包括 <script> 的起始标记和终止标记。第一个参数 key 是插入的客户端脚本的唯一标识符。

        这两个方法唯一的不同之处在于从“何处”发送脚本块。RegisterClientScriptBlock() 在 Web 窗体的开始处(紧接着 <form runat="server"> 标识之后)发送脚本块,而 RegisterStartupScript() 在 Web 窗体的结尾处(在 </form> 标识之前)发送脚本块。

          RegisterStartupScript() 用于添加要在加载页面后运行的脚本块,通过这种方法添加的脚本块位于 Web 窗体的结尾处,因为必须在脚本运行前定义脚本要修改的 HTML 元素。也就是说,如果您要使用客户端脚本将焦点设置到文本框,必须确保文本框的 HTML 标记位于设置该文本框的焦点的脚本之前。

          RegisterClientScriptBlock() 方法用于为响应客户端事件而执行的脚本代码。通过此方法发送的脚本块位于 Web 页面的开始处,因为这种方法不要求将脚本块置于所有 HTML 元素之后,即它一般不使用文档内自定义的控件。

     

    用于后台输出Javascript执行段

    打开一个新窗口:

    Page.RegisterStartupScript("starup", "<script language = 'javascript'>window.open('" + url + "','','toolbar=no,resizable=yes,scrollbars=yes')</script>")

    警告窗口
    /// <summary>
    ///
    服务器端弹出alert对话框
    /// </summary>
    /// <param name="str_Message">
    提示信息,例子:"不能为空!"</param>
    /// <param name="page">Page
    </param>
    public void Alert(string str_Message,Page page)
    {
    page.RegisterStartupScript("","<script>alert('"+str_Message+"');</script>");
    }

    重载此警告窗口,使某控件获得焦点

    /// <summary>
    ///
    服务器端弹出alert对话框,并使控件获得焦点
    /// </summary>
    /// <param name="str_Ctl_Name">
    获得焦点控件Id,比如:txt_Name</param>
    /// <param name="str_Message">
    提示信息,例子:"请输入您姓名!"</param>
    /// <param name="page">Page
    </param>
    public void Alert(string str_Ctl_Name,string str_Message,Page page)
    {
    page.RegisterStartupScript("","<script>alert('"+str_Message+"');document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");
    }

    确认对话框

    /// <summary>
    ///
    服务器端弹出confirm对话框
    /// </summary>
    /// <param name="str_Message">
    提示信息,例子:"您是否确认删除!"</param>
    /// <param name="btn">
    隐藏Botton按钮Id,比如:btn_Flow</param>
    /// <param name="page">Page
    </param>
    public void Confirm(string str_Message,string btn,Page page)
    {
    page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn+".click();}</script>");
    }

    重载确认对话框,点击确定触发一个隐藏按钮事件,点击取消触发一个隐藏按钮事件

    /// <summary>
    ///
    服务器端弹出confirm对话框,询问用户准备转向那些操作,包括确定取消时的操作
    /// </summary>
    /// <param name="str_Message">
    提示信息,比如:"成功增加数据,单击""确定""按钮填写流程,单击""取消""修改数据"</param>
    /// <param name="btn_Redirect_Flow">"
    确定"按钮id</param>
    /// <param name="btn_Redirect_Self">"
    取消"按钮id</param>
    /// <param name="page">Page
    </param>
    public void Confirm(string str_Message,string btn_Redirect_Flow,string btn_Redirect_Self,Page page)
    {
    page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn_Redirect_Flow+".click();}else{document.forms(0)."+btn_Redirect_Self+".click();}</script>");
    }


    获得焦点

    /// <summary>
    ///
    使控件获得焦点
    /// </summary>
    /// <param name="str_Ctl_Name">
    获得焦点控件Id,比如:txt_Name</param>
    /// <param name="page">Page
    </param>
    public void GetFocus(string str_Ctl_Name,Page page)
    {
    page.RegisterStartupScript("","<script>document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");
    }

    子窗体返回主窗体

    ///<summary>
    ///
    名称:redirect
    ///
    功能:子窗体返回主窗体
    ///
    参数:url
    ///
    返回值:空
    ///</summary>
    public void redirect(string url,Page page)
    {
    if ( Session["IfDefault"]!=(object)"Default")
    {
    page.RegisterStartupScript("","<script>window.top.document.location.href='"+url+"';</script>");
    }
    }

  • 相关阅读:
    多线程系列 线程池ThreadPool
    多线程系列 使用多线程的安全问题
    C#反射Assembly 详细说明
    Assembly(c#中简单说明[转]
    反射调用性能比较
    MFC控件GDI编程
    MFC控件第一讲.DC编程
    MFC原理第六讲.消息传递
    MFC原理第五讲.消息映射.以及如何添加消息
    MFC原理第四讲.动态创建机制
  • 原文地址:https://www.cnblogs.com/armyant/p/3507717.html
Copyright © 2011-2022 走看看