ASP.NET中整合JavaScript的技巧

尽管ASP.NET提供了一个强壮的平台,但是开发者也不应忽视诸如JavaScript这样成熟的技术。在这篇文章中,Tony Patton将向您解释在Web开发中如何将JavaScript与ASP.NET控件进行整合。

尽管Web开发平台提供了灵活性和众多功能,您经常希望或需要依赖现有的技术来完成一项必须的任务,一个好的例子就是ASP.NET,它提供了一个强大的开发平台,但是同时也不应忽略像JavaScript这样成熟的技术,在这篇文章中,我将向您讲解如何将JavaScript代码联结到ASP.NET控件中。

常规方式

通常情况下,当一个Web应用软件需要一个弹出窗口或确认窗口或其它的客户端功能时,您可以创建必需的JavaScript方法,并在需要时调用它们。例如,在列表A中包含了一个确认窗口,用户可以用它来继续或取消表单的提交。

在选择了提交(submit)按钮之后,JavaScript的confirmSubmit方法就被调用了,这一确认提示允许用户继续进行表单提交(选择确认)或取消(选择取消)。

以上代码可以按照计划工作,但是在一个开发平台上工作的时候就没有这么简单了,比如ASP.NET。

ASP.NET的替换选项

ASP.NET支持使用诸如输入按钮和文本框等HTML元素,但是在ASP.NET自己的开发模型上有一套完成的控件元素可以提供额外的功能。

将JavaScript附加到ASP.NET上并不像直接的HTML/JavaScript方式那么简单,ASP.NET编程模式在基本页面类中提供了方法来附加脚本程序块到页面元素当中。以下的方法可以用于附加或整合JavaScript到页面或页面元素中:

RegisterClientScriptBlock:允许您的页面含有脚本程序块,客户端脚本在页面对象form runat= server>元素的起始标签之后开始运行,脚本程序块是作为对象来提交输出的,所以您必需加上两个script>元素标签。

RegisterOnSubmitStatement:允许您指派一个脚本程序块/方法到页面对象OnSubmit事件上。

RegisterStartupScript:允许您在页面中包含脚本程序块,与RegisterClientScriptBlock方法类似,这一方法在页面对象form runat= server>元素的结束标签之前开始运行,脚本程序块是作为对象来提交输出的,所以您必需加上两个script>元素标签。

每个方法都可以接受两个参数:键和脚本,键是分配给脚本程序块的名称,键值应当是唯一的,通过这一唯一的键值,多个服务器控制的实例可以请求脚本程序块,而不必让脚本再次运行输出流;第二个参数脚本包含了发送到客户的实际脚本,它可以是完整的JavaScript代码或一个方法的名称。

这些方法可以使用在实际的ASP.NET页面代码中,无论是VB.NET、C#、J#或任何其它的语言,列表B展示了用C#编写的ASP.NET示例代码。

JavaScript方法是通过一个字符串变量来构建的,它的值传递给RegisterClientScriptBlock方法作为第二个参数,实际的方法名称是通过该对象的Attributes 属性的Add方法来分配给ASP.NET的按钮控件的,JavaScript事件是作为第一个参数传递的,而方法名称则是第二个参数。

而且,你可能会注意到IsStartupScriptRegistered方法的使用,该方法允许您在继续使用前确认该脚本是否已经被注册了,有两个方法可以用于这个问题:

IsStartupScriptRegistered:确认客户端的起始脚本是否已经在页面对象上注册,其单一参数是脚本的名称。

IsClientScriptBlockRegistered:确认客户端的脚本程序块是否已经在页面对象上注册,其唯一的参数是脚本的名称。

另一个解决问题的方法就是使用页面类的RegisterOnSubmitStatement方法,列表C重复了列表B的功能,但是不同之处在于将confirmSubmit方法连接到页面的提交事件上而不是按钮的点击事件上。

这个简单的例子清晰地说明了如何将JavaScript脚本程序块和JavaScript脚本包含到ASP.NET页面的控件上,如果您使用ASP.NET控件,这种方法可以帮助您将脚本联系到这些控件上,但是也可以使用注册(register)方法来集中一个项目的JavaScript。您可以创建一个包含了脚本的类文件并在需要时在页面中使用它们,这样就只需在一个位置对这些脚本进行管理,在一个应用软件中的一个或多个页面上使用这些脚本就会变得更容易。

集新旧于一身

无论在哪种开发平台,您都不太可能放弃使用JavaScript作为客户端脚本语言,JavaScript都是开发客户端功能的标准,尽管ASP.NET控件提供了大量的功能,很多时候您还需要将JavaScript与这些控件进行“联姻”,幸好ASP.NET页面类包含了众多的方法来将脚本程序块和方法集成到页面及其控件上。

时间: 2024-09-16 16:23:22

ASP.NET中整合JavaScript的技巧的相关文章

在ASP.Net中应用Javascript

概要 本文结合示例讲述了在ASP.net应用程序中如何利用客户端的Javascript脚本提高程序的执行效率并实现更多的功能. 一.ASP.Net与Javascript .Net是微软公司下一代的战略核心,ASP.Net是.Net战略在Web开发方面的具体实现.它继承了ASP的简单性和易用性,同时克服了ASP程序结构化较差,难于阅读和理解的缺点.特别是服务器端控件和事件驱动模式的引入,使得Web应用程序的开发更接近于过去桌面程序的开发. 在各种各样介绍ASP.Net的文章和书籍中,都把重点放在了

零起点 Asp.net中使用javaScript实现前后台方法的相互调用

零起点 Asp.net中使用javaScript实现前后台方法的相互调用 一.前台调用后台的方法: 1.在后台编写你要调用到前台的方法,如下: public string str()//javaScript函数中执行C#代码中的函数 { return "javaScript方法中执行C#代码中的方法"; } 2.前台用JS就可以实现调用后台的方法,如下: <script type="text/javascript">function Test() {va

在ASP.NET中利JavaScript实现控件的聚焦(转)

  在Windows应用程序中很容易控制控件的聚焦,但是在ASP.NET中并没有提供这样的功能,但是我们同样可以实现这样的功能,这篇文章就讲述了通过JaveScript实现在页面上某一特定控件获得焦点的功能. 下面是用到的JavaScript代码. 1 <script language="javascript"> 2 var control = document.getElementById(<control name>); 3 if( control != n

ASP.NET中前台javascript与后台代码调用

1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1答案如下: javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getElementById("btn1").click(); 3.在前台或后台调用js函

在ASP.NET中使用JavaScript脚本的方法_javascript技巧

一)简单点的如要在一个按钮上增加认证脚本,可以这样 复制代码 代码如下: <%@ Page Language="C#" %><SCRIPT language="javascript"> function getconfirm (){    if (confirm("Do you want to delete record?")==true)     return true;    else    return false;

ASP编程中18个基本技巧

编程|技巧 1. 现在的日期时间命令是<%=now%> 即可          2.ASP取得表格(from)数据输入的方法,是使用一个内置的对象(object)-Requect,它以get,post而异.          3.若要自己用VB或其它语言编写,.dll文件供ASP使用需将DLL文件注册方可:DOS下输入 regsbr32 *.dll          4.显示五个重复的句子,字体越来越大     <% for i=1 to 5 %>     <font siz

ASP.NET中使用Javascript Ajax 怎么返回Json

问题描述 以前都是用Jquery框架很方便...现在用纯javascript实现...返回的一直都是xml类型的....求解..[WebMethod][ScriptMethod(ResponseFormat=ResponseFormat.Json)]publicstringLogin(stringUserName,stringPassword,stringIsCheck){Dictionary<string,string>d=newDictionary<string,string>

asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结

通常javascript代码可以与HTML标签一起直接放在前 端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因为页面因此而变得臃肿:所以一般有良好开发习惯的程序员都会把 javascript代码放到独立的js文件中,其他页面通过引入该js文件来使用相应的 javascript代码.用如下方法引用JS文件:<script src="script/admin.js" type="text/javascript"></scr

ASP.NET中的URL映射技巧

 在项目中经常要进行如下映射 将 http://yyjcw.com/a.aspx?name=llinzzi 映射到 http://yyjcw.com/llinzzi 首先要解决2个问题 第一是支持通配符的映射 URL映射是asp.net2.0新增的功能,不支持通配符 于是采用了NBEAR的 NBear.Web.Modules.UrlRewriteRules 进行通配符映射   <?xml version="1.0"?> <!--      注意: 除了手动编辑此文件以