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>");
}
}

原文地址:https://www.cnblogs.com/armyant/p/3507717.html