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 之前,您需要使用
RegisterStartupScript 和
RegisterClientScriptBlock 方法。现在,这两个方法已被淘汰。在 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应用程序中配置web.config文件以添加对ASP.NET AJAX组件的引用。 首先,我们需要理解ASP.NET AJAX的核心组件。它主要由以下几部分组成: 1. **MicrosoftAjax.js** 和 **Microsoft...
如何封装JS和CSS文件为服务器端控件---ASP.NET 2.0 我们以封装一个JS的日期控件为列子,将它和服务器的TextBox结合在一起做成一个服务器控件,以达到直接托上去就可以使用的效果。其实很简单,大家共同学习。先看看...
在ASP.NET 2.0之前,需要使用RegisterStartupScript和RegisterClientScriptBlock方法。但是,这两个方法已经被淘汰。现在,可以使用Page.ClientScript属性来注册脚本。 5. JavaScript事件在服务器控件中的应用 ...
根据给定的文件信息,我们将深入探讨ASP.NET中的一些核心对象和它们的功能,这包括Page对象、Response对象以及Request对象。这些对象在ASP.NET应用程序中扮演着关键角色,理解它们的特性和方法对于开发动态网页至关...
- **定义**: `Page`对象是ASP.NET中的核心对象之一,代表一个ASP.NET页面。每个页面都是`System.Web.UI.Page`类的实例。 - **生命周期**: 包括初始化、加载、渲染等多个阶段。 - **属性和方法**: - `IsPostBack`: ...
在 ASP.NET 开发中,弹出提示信息是非常常见的需求,例如,在用户提交表单时,提示用户操作成功或失败。在这篇文章中,我们将讨论 ASP.NET 后台弹出提示方法的多种实现方式。 1. 使用 Response.Write.output 警示...
在ASP.NET中,C#与JavaScript的交互是一个非常实用的功能,尤其是在处理动态Web应用程序时。本文将详细介绍如何在ASP.NET的C#代码中调用JavaScript脚本,以及如何有效地利用这些技术来增强用户界面的交互性和响应性...
3. Page.ClientScript.RegisterClientScriptBlock():注册一个自定义的脚本块,可以指定脚本的位置(通常在页面头部或底部)。 在使用这些通用类时,开发者需要注意以下几点: 1. 参数传递:确保ASP.NET后台传递的...
在ASP.NET框架中,事件处理机制是其核心特性之一,它能够帮助开发者实现与用户交互的功能。本文将深入探讨ASP.NET中的事件处理机制,包括页面生命周期中的关键事件、客户端脚本注册以及自定义事件处理等。 #### 二...
//Page.ClientScript.RegisterClientScriptBlock(Page.GetType(),"alert1", "alert('test')",true); //在生成页面的前半部分!! //其中true,表示可以不输入[removed] [removed] //下面执行js代码 this....
用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别: 1.使用Page.ClientScript.RegisterClientScriptBlock c#代码 代码如下: <%@ Page Language=”C#” %> ...
`RegisterClientScriptBlock`是ASP.NET提供的一种方法,用于在HTML输出中插入自定义的JavaScript代码。这个方法在服务器端执行,但其结果会在客户端(浏览器)中运行。它的主要作用是在页面生命周期的适当阶段添加...
page.ClientScript.RegisterClientScriptBlock(page.GetType(), "a", "alert('" + msg.ToString() + "');"); } ``` 通过`RegisterClientScriptBlock`方法,我们可以向页面注册一段自定义的客户端脚本,例如这里展示...
在ASP.NET开发中,为了提升用户体验和页面响应速度,异步调用后台方法是一种常见的技术手段。本文将详细介绍如何在ASP.NET中实现异步调用后台方法,并解释相关的代码实现细节。 #### 一、异步调用背景与优势 异步...
通过`Page.ClientScript.RegisterClientScriptBlock`方法注册三个脚本块:`JQueryTipPath`、`CommonJs`和`JQueryPath`。 4. **UiXmlHelper 类**:这个类包含一个静态方法`GetCtrlSource`,用于从XML文件中获取与...
二是通过脚本注册,使用Page.RegisterStartupScript或Page.ClientScript.RegisterClientScriptBlock方法在页面加载时动态添加JavaScript代码。这样可以实现页面的异步更新,提高用户体验。 JavaScript类在Web开发中...
在.NET开发中,有时我们需要在后台代码中向前端用户显示一些提示信息,比如确认操作、错误消息或成功通知。这通常通过注入JavaScript代码到HTML响应中实现,因为浏览器端的JavaScript可以直接与用户交互。以下是一些...
在Asp.net中,页面间的数据传递通常有多种方法,如使用Query String、Session、View State、Cookies等。然而,当需要在不刷新整个页面的情况下传递数据时,可以通过客户端脚本(JavaScript)来实现。以下将详细介绍...
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), SCRIPT_ID, SCRIPT_CONTENT); } } ``` 在上面的代码中,`RenderJS`方法被调用以确保在控件的`OnPreRender`事件中注册JavaScript。`Page....