`

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>

分享到:
评论

相关推荐

    ASP.NET 2.0应用程序添加ASP.NET AJAX 组件引用之web.config配置

    本篇将详细介绍如何在ASP.NET 2.0应用程序中配置web.config文件以添加对ASP.NET AJAX组件的引用。 首先,我们需要理解ASP.NET AJAX的核心组件。它主要由以下几部分组成: 1. **MicrosoftAjax.js** 和 **Microsoft...

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

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

    基于JavaScript与ASP.NET的网站开发技术.pdf

    在ASP.NET 2.0之前,需要使用RegisterStartupScript和RegisterClientScriptBlock方法。但是,这两个方法已经被淘汰。现在,可以使用Page.ClientScript属性来注册脚本。 5. JavaScript事件在服务器控件中的应用 ...

    计算机\教程\asp.net和C#\原版教程\ASP.NET中的对象.pdf

    根据给定的文件信息,我们将深入探讨ASP.NET中的一些核心对象和它们的功能,这包括Page对象、Response对象以及Request对象。这些对象在ASP.NET应用程序中扮演着关键角色,理解它们的特性和方法对于开发动态网页至关...

    ASP.NET-AJAX总结.txt

    - **定义**: `Page`对象是ASP.NET中的核心对象之一,代表一个ASP.NET页面。每个页面都是`System.Web.UI.Page`类的实例。 - **生命周期**: 包括初始化、加载、渲染等多个阶段。 - **属性和方法**: - `IsPostBack`: ...

    Asp.net后台弹出提示方法

    在 ASP.NET 开发中,弹出提示信息是非常常见的需求,例如,在用户提交表单时,提示用户操作成功或失败。在这篇文章中,我们将讨论 ASP.NET 后台弹出提示方法的多种实现方式。 1. 使用 Response.Write.output 警示...

    asp.net 在cs中如何调用js的代码

    在ASP.NET中,C#与JavaScript的交互是一个非常实用的功能,尤其是在处理动态Web应用程序时。本文将详细介绍如何在ASP.NET的C#代码中调用JavaScript脚本,以及如何有效地利用这些技术来增强用户界面的交互性和响应性...

    asp.net中javascript通用类

    3. Page.ClientScript.RegisterClientScriptBlock():注册一个自定义的脚本块,可以指定脚本的位置(通常在页面头部或底部)。 在使用这些通用类时,开发者需要注意以下几点: 1. 参数传递:确保ASP.NET后台传递的...

    ASP.NET中的事件处理

    在ASP.NET框架中,事件处理机制是其核心特性之一,它能够帮助开发者实现与用户交互的功能。本文将深入探讨ASP.NET中的事件处理机制,包括页面生命周期中的关键事件、客户端脚本注册以及自定义事件处理等。 #### 二...

    net后台执行前台js方法

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

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

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

    asp.net 客户端回调

    `RegisterClientScriptBlock`是ASP.NET提供的一种方法,用于在HTML输出中插入自定义的JavaScript代码。这个方法在服务器端执行,但其结果会在客户端(浏览器)中运行。它的主要作用是在页面生命周期的适当阶段添加...

    ASP.NET打开新页面

    page.ClientScript.RegisterClientScriptBlock(page.GetType(), "a", "alert('" + msg.ToString() + "');"); } ``` 通过`RegisterClientScriptBlock`方法,我们可以向页面注册一段自定义的客户端脚本,例如这里展示...

    asp.net异步调用后台方法提交

    在ASP.NET开发中,为了提升用户体验和页面响应速度,异步调用后台方法是一种常见的技术手段。本文将详细介绍如何在ASP.NET中实现异步调用后台方法,并解释相关的代码实现细节。 #### 一、异步调用背景与优势 异步...

    asp.net页面输入控件屏蔽特殊字符键盘输入

    通过`Page.ClientScript.RegisterClientScriptBlock`方法注册三个脚本块:`JQueryTipPath`、`CommonJs`和`JQueryPath`。 4. **UiXmlHelper 类**:这个类包含一个静态方法`GetCtrlSource`,用于从XML文件中获取与...

    aspnet操作javascript类

    二是通过脚本注册,使用Page.RegisterStartupScript或Page.ClientScript.RegisterClientScriptBlock方法在页面加载时动态添加JavaScript代码。这样可以实现页面的异步更新,提高用户体验。 JavaScript类在Web开发中...

    .net后台弹出提示消息代码

    在.NET开发中,有时我们需要在后台代码中向前端用户显示一些提示信息,比如确认操作、错误消息或成功通知。这通常通过注入JavaScript代码到HTML响应中实现,因为浏览器端的JavaScript可以直接与用户交互。以下是一些...

    Asp.net页面之间通过脚本传递数据.doc

    在Asp.net中,页面间的数据传递通常有多种方法,如使用Query String、Session、View State、Cookies等。然而,当需要在不刷新整个页面的情况下传递数据时,可以通过客户端脚本(JavaScript)来实现。以下将详细介绍...

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

    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), SCRIPT_ID, SCRIPT_CONTENT); } } ``` 在上面的代码中,`RenderJS`方法被调用以确保在控件的`OnPreRender`事件中注册JavaScript。`Page....

Global site tag (gtag.js) - Google Analytics