在ASP.NET页面上轻松整合JavaScript

asp.net|javascript|页面

作者: Builder, Tony Patton

尽管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到页面或页面元素中:

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

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

l
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方法的使用,该方法允许您在继续使用前确认该脚本是否已经被注册了,有两个方法可以用­于这个问题:

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

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

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

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

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

时间: 2024-11-03 00:45:37

在ASP.NET页面上轻松整合JavaScript的相关文章

如果一个ASP.NET页面上除了一个Button服务器控件什么都没有时,单击该按钮,整个页面也会发送回服务器吗?

问题描述 如果一个ASP.NET页面上除了一个Button服务器控件什么都没有时,单击该按钮,整个页面也会发送回服务器吗? 解决方案 解决方案二:<form/>中的相应html标签的value值才会回发,别的不会发.你应该先学好了html,再学习asp.net.在开发一些宣传性的(而非应用程序的)网页时,会首先删除asp.net默认产生的<formrun="server"></form>,因此这种页面也就自然不回发,而仅仅采取客户端url重定向方式来

请教一个很简单的问题,如何在ASP.net页面上显示一个变量

问题描述 请教一个很简单的问题,如何在ASP.net页面上显示一个变量,比如登陆的时候,在固定位置显示***你好.如果不用response.write还有没有别的办法啊 解决方案 解决方案二:可以在你想放变量的地方放一个LABEL..赋值后显示就OK了解决方案三:好的,谢谢啦解决方案四:方法很多,常见的如楼上

如何在asp.net页面上放置的控件上实现左右键菜单,同时对之操作(1

asp.net|菜单|控件|页面 前言: 大家也许开发了很多windows界面的解决方案,对于菜单的使用可以说是滚瓜烂熟,当然,如何实现windows窗口上的左右键功能也是不在话下. 但是如何在web窗口实现菜单呢? 很多人说.用javascript或者是vbscript来实现.完全正确.一般说来是在前台用脚本语言来写.现在也有基于不是用脚本语言的控件的方式来实现的方式.用控件来实现的方法大家可以参考我写的<基于asp.net的webmenu的数据操作>一文,用控件很容易的. 我说的是老生常谈

通过数据捆绑将数据添加到ASP.NET 页面

asp.net|数据|页面 如果熟悉经典ASP,即使函数不相同,那么你也会很熟悉ASP.NET中的数据绑定语法.数据绑定的表达式是ASPX文件中<%# and %>中间的代码.它允许将数据绑定到控制器,同时也允许绑定属性.表达式和页面上方法调用的结果绑定到控制器.虽然这一特征很容易使用,但是有时在确定什么内容被允许绑定和是否它已经被使用的时候又造成一定的混乱. 数据绑定要素 当页面的ASP.NET中DataBind方法被调用的时候,数据绑定表达式与ASP.NET中的属性.服务器控制属性和数据源

ASP.net 页面中ftp下载时路径选择问题

问题描述 请教各位高人一个问题,希望能给小弟解答,非常感谢.比如我有一FTP站点:ftp://10.170.8.100/asp.txt,现在我想在ASP.NET页面上做一个按钮,点击这个按钮后可以下载这个站点里的asp.txt文件,但是我想在下载的时候弹出一个提示文件保存路径的对话框,而不是固定下载路径,希望高人给指点一下.网上有很多指导如何弹出下载对话框的代码,但是如果链接到ftp站点上好像就很难弹出来了,不知道有没有好的解决办法. 解决方案 解决方案二:我也遇到这个问题,不知你解决了没?能分

ASP.NET中整合JavaScript的技巧

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

在ASP.NET Atlas中调用Web Service—直接在ASPX页面上暴露Web Method

asp.net|web|页面 作者:Dflying Chen(http://dflying.cnblogs.com/) 前面的一系列的文章都是直接调用单独的一个Web Service,而在实际项目开发中,特别是在对现有的项目转换中,把页面中的逻辑再提取到专门的Web Service中往往会带来相当多的工作.Atlas充分考虑到了这一点,允许您将服务器端的public方法加上[WebMethod]属性以允许客户端JavaScript的直接调用. 想允许客户端直接调用定义在ASPX页面中的方法,您需

虚拟键盘-JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式

问题描述 JavaScript怎样实现咋键盘上按下不同的键,页面上不同的div调用同一个css样式 这是页面上的一个虚拟键盘,我想实现的是当我在电脑的键盘上按键后,虚拟键盘上的相对应的键会有不同的显示效果(调用一个css)(虚拟键盘上的每一个小键都是一个图片),就是当我按下不同的按键,页面上相对的键所在的div就会调用同一个css 解决方案 虚拟键盘上的每个控件都增加keycode属性,然后document.onkeydown获取时间的keycode属性后获取控件添加个样式,过100ms再移除什

asp.net 文件上传与刷新与asp.net页面与iframe之间的数据传输_实用技巧

具体我们如何实现文件的异步刷新,目前网上已经有了很多文章来解决这个问题,但是会用到大量的javascript,由于本人编码功力尚浅,所以之今没有高清其中的所以然,但是在解决的方案中他们貌似都用到了iframe,这让我茅塞顿开,所以我就说说用这个处理刷新的思路. 首先一个实际的页面中往往是会有较多的内容,我们暂时把它分为A,B两个区域,A区域是内容区域,我们可以用updatepanel来实现异步刷新,B区域是上传区域,我们用div已经ifame占位,其中上传的具体功能实现我们可以放到C页面中,这样