ASP.NET服务器控件开发(5)--添加客户端功能

随着Ajax等技术的发展,客户端功能也逐渐变得越来越重要。如果在服务器控件中添加客户端功能,将会创作出功能更强大,界面更丰富的服务器控件。

客户端功能:

在Web编程中,客户端功能传统上是由Web页开发人员负责,并且不被封装在服务器组件中。ASP.NET脱离了这一范畴并使服务器控件能够发出客户端脚本,从而使服务器控件能够将客户端处理与服务器端处理结合起来。例如按钮控件的OnClientClick属性,就可以在其中声明一段脚本在客户端执行。

OnClientClick--->return confirm('Hello Word'),单击按钮时就会在客户端弹出一个提示框。

实现客户端功能的技术主要是客户端脚本(JavaScript、VBScript等)和DHTML。这个想必大家都知道。

ASP.NET服务器控件中客户端功能的实现:

下面我们进入正题,来看看ASP.NET服务器控件中是如何实现客户端功能的:代码如下:

namespace ServerClientControl
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:SimpleButton runat=server></{0}:SimpleButton>")]
    public class SimpleButton :Button
    {
        protected override void RenderContents(HtmlTextWriter output)
        {

        }

        protected override void AddAttributesToRender(HtmlTextWriter writer)
        {
            base.AddAttributesToRender(writer);
            writer.AddAttribute("onclick", "window.confirm('Hello World! ');");
        }

    }
}

我们创建一个继承自Button的类,通过AddAttributesToRender()方法添加一个onclick客户端事件。这样就简单的实现了向服务器控件添加客户端事件的功能。

ClientScriptManager 类

当然,这只是简单的方式。在 .NET Framework 2.0 版中为我们新增了ClientScriptManager 类。通过在网页的 HTML 标记中包含脚本,可以声明方式向网页添加客户端脚本。然而,有些情况下需要动态添加客户端脚本。

实现复杂客户端功能有关的几个常用方法:

RegisterClientScriptBlock():向页的顶部添加一个脚本块。以字符串形式创建脚本,然后将其传递给方法,方法再将脚本添加到页中。可以使用此方法将任何脚本插入到页中。请注意,脚本可能在所有元素完成之前呈现到页中;因此,您可能无法从脚本中引用页上的所有元素。

RegisterClientScriptInclude():与 RegisterClientScriptBlock 方法类似,但此方法将添加引用外部 .js 文件的脚本块。包含文件在任何其他动态添加的脚本之前添加;因此,您可能无法引用页上的某些元素。

RegisterStartupScript():向页中添加一个脚本块,该脚本块在页完成加载后引发页的 onload 事件之前执行。该脚本通常不创建为事件处理程序或函数;它通常只包含要执行一次的语句。

RegisterOnSubmitStatement():添加响应页的 onsubmit 事件而执行的脚本。该脚本在提交页之前执行,允许您取消提交。

IsStartupScriptRegistered():确定Page对象是否注册了启动脚本。 

IsClientScriptBlockRegistered():确定Page对象是否注册了客户端脚本。

更详细的说明讲解大家可以参看MSDN。

时间: 2024-07-30 15:57:11

ASP.NET服务器控件开发(5)--添加客户端功能的相关文章

ASP.NET服务器控件开发(1)封装html_实用技巧

在我们的项目开发中,由于ASP.NET的服务器控件功能有限,所以我们经常会自己定义特定的服务器控件,来满足开发中特定的业务要求.可见知道如何开发ASP.NET服务器控件是非常有必要的. 其实简单的实现ASP.NET服务器控件不是很难,以前园子中也有大牛介绍过相应的内容,这里站在巨人的肩膀上也来分享下开发ASP.NET服务器控件的方法和自己的一些体会.写给新手,高手绕过. 学习ASP.NET的服务器控件开发,个人认为最好的方式就是自己去实践,当然理论知识也是很重要的,但是如果我们只是看理论的知识,

ASP.NET服务器控件开发(3)--事件和回传数据的处理

前两篇介绍了服务器控件的基本显示,属性的设定,继承Webcontrol开发控件等内容,这篇介绍下定制服务器控件的事件的处理和回传数据的处理. 当ASP.NET页面处理回传到服务器端的表单时,两种信息会传递给页面中的控件: 回传事件,如Button一类控件触发的回传,会引发服务器端事件: 回传数据:是Web表单中包含的数据,该数据是在Web表单提交到服务器端时传递给如TextBox一类的控件. 处理回传数据 PostBack(回传):ASP.NET控件提交表单到服务器端,将信息从浏览器传递到服务器

ASP.NET服务器控件开发(2)--继承WebControl类

先来介绍下WebControl类 WebControl类: WebControl 类从 Control 派生,用作定义 System.Web.UI.WebControls 命名空间中的所有控件的公共方法.属性和事件的基类.提供所有 Web 服务器控件的公共属性.方法和事件.通过设置在此类中定义的属性,可以控制 Web 服务器控件的外观和行为.主要的属性有:AccessKey.Attributes. Width.Height等.此外,一个从 WebControl 派生的控件也自行参与到 ASP.N

ASP.NET服务器控件开发(1)--封装html

在我们的项目开发中,由于ASP.NET的服务器控件功能有限,所以我们经常会自己定义特定的服务器控件,来满足开发中特定的业务要求.可见知道如何开发ASP.NET服务器控件是非常有必要的. 其实简单的实现ASP.NET服务器控件不是很难,以前园子中也有大牛介绍过相应的内容,这里站在巨人的肩膀上也来分享下开发ASP.NET服务器控件的方法和自己的一些体会.写给新手,高手绕过. 学习ASP.NET的服务器控件开发,个人认为最好的方式就是自己去实践,当然理论知识也是很重要的,但是如果我们只是看理论的知识,

ASP.NET服务器控件开发(4)--复合控件

概念: 所谓复合控件:简单的理解就是将多个基本的控件组合成一个控件,从而实现自己想要的效果.微软为ASP.NET2.0中推出的登录控件等就是一个复合控件.从功能的实现上,复合式控件有点像用户控件,只是一个是.ascx文件,一个是.dll文件. 呈现简单的复合控件: 要想呈现一个复合控件,需要了解以下几个方面: -->实现INamingContainer接口. 任何实现该接口的控件都创建一个新的命名空间,在这个新的命名空间中,所有子控件 ID 属性在整个应用程序内保证是唯一的. -->Contr

ASP.NET服务器控件开发简介:ComboBox

我在Web项目的开发过程中很多时候都要用到ComboBox,找了很多类似的控件来用发现都不尽如人意,我所希望的能够在WEB上使用的ComboBox应该就是在DropDownList的功能上加入了文本输入功能,我个人比较看重的一点就是下拉列表应该可以伸展到浏览器之外,然而目前大多数的ComboBox要么是用DIV来显示选择项,要么就是用TextBox+ListBox,DIV的方式会不能伸展到浏览器之外,而TextBox+ListBox方式ListBox占用页面空间.后来发现了A DHTML com

分析ASP.NET服务器控件开发-控件生命周期

服务器控件生命周期简介 服务器控件的生命周期是创建服务器控件最重要的概念.作为开发人员,必须对服务器控件生命周期深刻理解.当然,这不是一朝一夕就可以做到的.对于学习控件开发技术的初学者,可以不必掌握得非常详细深入,只需对服务器控件的生命周期中的不同阶段有一个大致的了解即可. 在掌握服务器控件生命周期的过程中,读者要特别注意有关服务器控件状态的相关内容.在重点了解生命周期各个阶段的同时,对服务器控件的状态变化要注意以下问题:控件的生命周期何时保存控件和恢复其状态:何时与页面及其他控件之间进行交互:

生成 ContentRotator ASP.NET 服务器控件

asp.net|服务器|控件 摘要: 介绍创建自定义.编译的 ASP.NET 服务器控件涉及的步骤,这种控件对所有的特定内容进行随机滚动,就像内置的 AdRotator 控件随机滚动一系列预定义的标语广告一样.在介绍 ContentRotator 控件的核心内容时,本文涉及到自定义 ASP.NET 控件开发的几个方面. 简介 早在九十年代末期,似乎没有什么事情是不可能发生的.World Wide Web 及其对商业的影响急剧增加 - 孩子们退学建立 Web 站点而一夜暴富,企业也斥资数百万美元在

ASP.NET 2.0服务器控件之客户端功能

asp.net|服务器|客户端|控件  多数在表示层应用的服务器控件主要由两个部分组成:服务器端功能和客户端功能.服务器端功能永远是服务器控件的核心,而随着技术的发展,客户端功能也逐渐变得越来越重要.只有两个部分互相配合,才能创建出功能强大.界面丰富的服务器控件.本文将讨论在服务器控件中实现客户端功能的相关问题,具体内容包括客户端功能概述.实现简单客户端功能.实现复杂客户端功能,以及部署客户端文件的实现方法等内容.      1. 客户端功能简介      在Web编程中,客户端功能传统上是由W