`

ASP.NET2.0中Page.ClientScript.RegisterClientScriptBlock与RegisterClientScriptBlock

阅读更多

ASP.NET2.0中Page.ClientScript.RegisterClientScriptBlock与RegisterClientScriptBlock
2010年07月07日 星期三 18:35

既然我们可以在 HTML 元素内部嵌入部分 JavaScript,甚至可以以动态方式使用 JavaScript 和 Web 服务器控件,那么如何将全部 JavaScript 函数置于您的代码中呢?

可通过多种方法来完成此任务,我们将介绍几种可在 ASP.NET 代码中使用的较为常见的方法。在本文中,我们将介绍如何使用新的 Page.ClientScript 属性。在 ASP.NET 2.0 之前,您需要使用 RegisterStartupScriptRegisterClientScriptBlock 方法。现在,这两个方法已被淘汰。在 ASP.NET 1.x 中注册脚本的两种可能方法均需要使用一组关键字/脚本参数。由于涉及到了两个独立的方法,因此极有可能会出现一些关键字名称冲突。Page.ClientScript 属性本身就可以完成所有的脚本注册,从而使您的代码少出错。

先看一下下面的列子:

//要根据后台取的值初始化页面显示

protected void Page_Load(object sender, EventArgs e)
     {
         if (!IsPostBack)
         {
             GetGovShiftSetInfo();//此方法作用:取数据库数据来设置rbTwo状态
             if (rbTwo.Checked)
             {
                 //Page.RegisterStartupScript("", "<script>istwo();</script>"); //1.0的语法构造,已过时

                 Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "istwo();", true);
             }
         }
     }

----------------------------------------------------------------------------------------

//放在前台的JS:

<script type="text/javascript">
  
      function istwo()
      {
             var   obj1=window.document.getElementById("ctl00_MainContent_panelPmB");
             var   obj2=window.document.getElementById("ctl00_MainContent_panelPmE");
             var   obj3=window.document.getElementById("ctl00_MainContent_lbAmB");
             var   obj4=window.document.getElementById("ctl00_MainContent_lbAmE");
             var   obj5=window.document.getElementById("ctl00_MainContent_panelCard");
             obj1.style.visibility = "hidden";
             obj2.style.visibility = "hidden";
             obj3.style.visibility = "hidden";
             obj4.style.visibility = "hidden";
             obj5.style.visibility = "hidden";
             var no3= parseInt(window.document.getElementById("ctl00_MainContent_txtValue").value);
             if (no3 <   5 || no3 > 500 )
              {
                     alert("上下班刷卡有效时限:[5-500]分钟内");
                  window.document.getElementById("ctl00_MainContent_rbFour").focus();
                    window.document.getElementById("ctl00_MainContent_rbFour").checked=true;
                    isfour();
             }               
      }

   --------------------------------------------------------------------------------------------------------

之所以没用Page.ClientScript.RegisterClientScriptBlock而用Page.ClientScript.RegisterStartupScript是因为RegisterStartupScript 把script放置在ASP.NET page的底部,而RegisterClientScriptBlock把script放置在ASP.NET page的顶部,用RegisterClientScriptBlock会报错:javascript函数不到对象

如果你的页面中有如下代码:

<asp:TextBox ID=”TextBox1” Runat=”server”>

Hello ASP.NET

</asp:TextBox>

 

c#

protectedvoid Page_Load(object sender, EventArgs e)


{


string myScript = @”alert(document.forms[0][‘TextBox1’].value);”;


Page.ClientScript.RegisterClientScriptBlock(
this.GetType(),


“MyScript”, myScript,
true);


}

此页面运行时会报错,原因是JavaScript function先于text box被安放于浏览器。因此JavaScript function找不到TextBox1。

c#

protectedvoid Page_Load(object sender, EventArgs e)


{


string myScript = @”alert(document.forms[0][‘TextBox1’].value);”;


Page.ClientScript.RegisterStartupScript(
this.GetType(),


“MyScript”, myScript,
true);


}

这段代码把JavaScript function放置于ASP.NET page底部,因此JavaScript运行时它能找到TextBox1。

3.使用Page.ClientScript.RegisterClientScriptInclude
许多开发者把JavaScript放置在.js文件中,使用RegisterClientScriptInclude方法可以注册.js文件中的JavaScript。

c#

string myScript = “myJavaScriptCode.js”


Page.ClientScript.RegisterClientScriptInclude(“myKey”, myScript);

这将在ASP.NET页面产生如下结构:
<script src=”myJavaScriptCode.js” type=”text/javascript”></script>

分享到:
评论

相关推荐

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。. ASP.NET允许Web站点为每个访问者显示独一无二的页面,而不是显示相同的静态HTML页面。ASP.NET 2.0的发布,使Web应用程序的...

    ASP.NET2.0高级编程(第4版)1/6

    本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...

    如何封装JS和CSS文件为服务器端控件---ASP.NET 2.0

    如何封装JS和CSS文件为服务器端控件---ASP.NET 2.0 我们以封装一个JS的日期控件为列子,将它和服务器的TextBox结合在一起做成一个服务器控件,以达到直接托上去就可以使用的效果。其实很简单,大家共同学习。先看看...

    asp.net后台弹窗如何实现

    一般弹窗 代码如下: Page.ClientScript.RegisterStartupScript(this.GetType(), “message”, “alert&#40;‘确定删除吗’&#41;”, true); 第一个参数不会变, 第二个参数是键值的意思,如果只有一个弹出对话框的...

    net后台执行前台js方法

    //Page.ClientScript.RegisterClientScriptBlock(Page.GetType(),"alert1", "alert&#40;'test'&#41;",true); //在生成页面的前半部分!! //其中true,表示可以不输入[removed] [removed] //下面执行js代码 this....

    ASP .NET调用javascript中Response.Write和ClientScript.RegisterStartupScript的区别

    最近在用ASP .NET的code behind 调用javascript中发现Response.Write不能拿到form的值,而ClientScript.RegisterStartupScript可以。

    ASP.NET中后台注册js脚本使用的方法对比

    用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别: 1.使用Page.ClientScript.RegisterClientScriptBlock c#代码 代码如下: &lt;&#37;@ Page Language=”C#” %&gt; ...

    超级实用:输出客户端代码实现特殊功能的方法asp.net C# JScript 常用方法大全.

    page.ClientScript.RegisterStartupScript(typeof(string), "message", "$(document).ready(function() { var para = { mode: 'sample',message:'"+msg+"', title: '提示信息', firstboxval: $(\"#fileText\")....

    Asp.Net alert弹出提示信息的几种方法总结

    1.ClientScript.RegisterStartupScript(GetType(),”message”,”[removed]alert&#40;...3.public static void Show(System.Web.UI.Page page, string msg) { page.ClientScript.RegisterStartupScript(page.Get

    ASP.NET 多次提交的解决办法2

    例如: protected void Page_Load(object sender, EventArgs e) { //.net1.1 Button1.Attributes.Add(“onclick”, “this.disabled=true;...” + this.ClientScript.GetPostBackEventReference(Button1, “”

    非Ajax无刷之ClientScript_GetCallbackEventReference_楚天雪饮的空间

    非Ajax无刷之ClientScript_GetCallbackEventReference_楚天雪饮的空间

    基本c#代码

    if (this.txtDLM.Text.Trim() == "") { Page.ClientScript.RegisterStartupScript(this.GetType(), "info", "&lt;script&gt;alert('登录名不能为空!');&lt;/script&gt;"); return; } if (this.txtMM.Text.Trim() != this....

    ASP.NET Night Words

    第13章 asp.net中的ajax开发 238 13.1 纯javascript开发ajax应用 238 13.2 第三方(ajaxpro)开发 13.2 ajax应用 246 13.3 微软ajax控件库开发ajax应用 254 13.3.1 scriptmanager控件 254 13.3.2 ...

    asp.net后台如何输出js脚本使用什么方法可以实现

    asp.net后台如何输出js脚本,用page.ClientScript.RegisterStartupScript方式实现,实现示例如下,感兴趣的朋友不要错过

    asp.net自定义控件中注册Javascript问题解决方案

    Page.ClientScript.IsClientScriptBlockRegistered(SCRIPT_ID))//如果还没有注册语句,则注册 { Page.ClientScript.RegisterClientScriptBlock(this.GetType(),SCRIPT_ID,SCRIPT_CONTENT); } } private co

    asp.net注册Javascript的方法

    1、IsStartupScriptRegistered:对象... 第一个例子: string info = “[removed]alert&#40;‘你好吗?’&#41;;[removed]”;...body&gt;—-[removed]&lt;...Page.ClientScript.IsStartupScriptRegistered(“test”)) { /

    ASP.Net页尾中添加JavaScript的最佳方法实战分享

    如何将 JavaScript 脚本或库...Page.ClientScript.IsClientScriptIncludeRegistered(“jsFileInclude”)) Page.ClientScript.RegisterClientScriptInclude(“jsFileInclude”, “JsFile.js”); 在viewstate数据的文档

Global site tag (gtag.js) - Google Analytics