扩展Dojo dijits创建自己的自定义小部件

Dojo Toolkit 是一个强大的 ">JavaScript 库,支持 Web 开发人员使用面向对象的小部件,用最少的开发时间和工作量来创建富 Internet 应用程序。Dojo Toolkit 提供了 4 个包,它们分别是 Dojo(核心)、Dijit(UI 框架)、dojox(dojo 扩展)和 util。您可以原封不动地使用该工具包提供的功能,也可扩展它们并创建自己的小部件。提供的功能包括 DOM 操作、使用 AJAX 开发、事件、数据存储等。

Dijit(dojo 小部件)包是 dojo 自己的 UI 库,它包含一组 dojo 类,使开发人员能够以最少的工作创建功能丰富且强大的跨平台 Web 2.0 接口。这些 Dijit 小部件(或 dijit)支持一些易于操作的主题。这个包中的 dijit 示例包括按钮、文本字段、编辑器、进度条等。

举例而言,您可以使用这些 dijit 创建一个提交表单,其中包含用于名称、电子邮件地址和电话号码的文本字段,以及日期字段、复选框、按钮和验证,所有这些在几分钟即可完成,需要的 JavaScript 知识也极少。

提供的一个功能最丰富的 dijit 是 Calendar dijit,它支持在一个月的上下文中显示日历。用户可轻松地逐月、逐年导航,或者跳到同一年中任一个月,以选择特定的日期。

在开发富 Internet 应用程序 (RIA) 时,通常可以原封不动地使用 dijit。但是,有时您可能需要使用不同的样式(比如更改颜色或主题),或者需要进行更复杂的更改,其中可能需要结合使用某些功能、模板和样式更改。要满足这些需求,则需要从头创建一个新的自定义小部件,也可以创建一个扩展现有 dijit 的自定义小部件。

本文提供了一个练习,在这个练习中,您需要在自己的网站上使用 Calendar 小部件的不同变体。为了满足此需求,您需要创建一个新类。此练习使用了 Dojo version 1.7,提供了探索 Calendar dijit 的机会和以极少的改动重用现有 dijit 来节省开发时间的方式。您还会看到在 Dojo 1.7 中声明的一个新类的实用示例,探索一些 Dojo 基础功能,比如数据操作、hitch、发布和订阅等。

问题

在此练习中,您将使用 Calendar dijit 的一个具有以下需求的自定义版本:

日历应仅显示当月的日期(隐藏和禁用不属于当月的日期)。 日历应仅在底部显示当前年份(没有去年或明年)。 日历应在日历小部件底部显示当月的名称。 用户无法跳到任何其他月份(禁用顶部的月份下拉按钮)。 提取日历顶部显示的用于逐月移动(向后或向前)的箭头,将日历旁边的箭头显示为 dijit 按钮。这两个新按钮是用户更改月份的惟一方式。 具有最小和最大边界日期,这意味着所有在此边界外的日期都应该是禁用和不可访问的。 在到达边界日期时,禁用相应的月份导航按钮。 向日历中选定的日期添加特殊的样式。 当用户选择某个日期时,将该日期传递给一个将处理新选择的值的函数。

解决方法是创建一个自定义小部件,这个小部件通过使用 JavaScript 和 CSS 编辑 Calendar dijit 来开发。图 1 显示了应用上面需求之前(左侧)和之后(右侧)的 Calendar 小部件。

图 1. 标准 Calendar dijit 与自定义 Calendar 小部件的对比

为此,您将需要创建 3 个文件:

Dijit 模板:一个将显示自定义小部件的组件的标记文件。 Dijit 类:一个使用声明 (JavaScript) 创建的小部件类。 CSS 文件:包含所有必要的样式表类。

图 2 显示了自定义小部件的文件结构和位置。您的起点是 index.html,它在本示例中充当了小部件的控制器。simple.css 文件将包含所有样式。

图 2. 文件结构

时间: 2024-09-20 00:04:04

扩展Dojo dijits创建自己的自定义小部件的相关文章

使用Dojo Mobile 1.8新的小部件增强您的移动应用程序

本文是由三部分组成的系列文章的第一部分,通过许多代码示例探索了这些新功能.在第 1 部分中,将了解 Dojo Mobile 1.8 中引入的新小部件.与小部件相关的实用程序类,以及一些模块. Dojo Mobile 1.8 引入了许多可用于http://www.aliyun.com/zixun/aggregation/14219.html">移动应用程序的新的小部件和模块.您可在 dijit 或 dojox 包中找到适用于移动应用程序的小部件,但 Dojo Mobile 小部件的设计仅包含

如何使用VS创建简单的自定义Web Part 部件属性

自定义属性使用额外的选项和设置拓展你的Web part部件.本文主要讲解如何使用Visual Studio创建简单的自定义Web Part 部件属性. 1. 打开Visual Studio,点击文件--新建项目--空白SharePoint项目CustomWPProperties.部署为场解决方案. 2. 右击项目添加新项Web Part部件WPPropertyExample,点击添加. 3. 右击WPPropertyExample.cs,点击查看代码. 4. 添加代码,最后是这样的: using

Android之AppWidget(桌面小部件)开发浅析

什么是AppWidget AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序,先看图: 图中我用黄色箭头指示的即为AppWidget,一些用户使用比较频繁的程序,可以做成AppWidget,这样能方便地使用.典型的程序有时钟.天气.音乐播放器等.AppWidget 是Android 系统应用开发层面的一部分,有着特殊用途,使用得当的化,的确会为app 增色不少,它的工作原理是把一个进程的控件嵌入到别外一个进程的窗口里的一种方法.长按桌面空白处,会出现

综合JSF和Dojo小部件创建更好的用户体验

简介 JSF 是一种流行的 Web 框架.相当稳定并已被广泛应用于 Java Platform, Enterprise Edition (Java EE) 领域.Dojo 是一种功能最为强大的 Web 2.0 库之一,可用来为您的 Web 应用程序创建丰富的界面. 通过综合使用这两种技术,您就能享受到两种技术的好处.在服务器端,好处体现在对组件端对端的生命周期管理.后端 bean 数据捆绑和事件处理.在客户机端,您将能利用 Dojo 的丰富小部件.实时动画(比如淡出和滑变效果)以及拖放功能.此外

使用Dojo开发定制Business Space小部件,第4部分

我们为本系列开发的定制小部件是基于 WebSphere V7.0 支持的 Business Space(以下简称 Business Space)中附带的 Dojo 版本,已经在 Mozilla Firefox 3.0.11 中测试过了.只是,我们开发的通用框架概念甚至可以应用到使用 Dojo 的应用程序中,但却不能用于 Business Space.学习本系列需要具备 DOJO 和 iWidget 框架的基本知识. 我们将讨论在基于 Dojo 的应用程序中经常遇到的主题.本系列分为以下几部分:

使用Dojo开发定制Business Space小部件,第3部分

使用Dojo开发定制Business Space小部件,第3部分: 在iWidget中使用多个模板和从基本小部件继承 简介 我们为本系列开发的定制小部件是基于 WebSphere V7.0 支持的 Business Space(以下简称 Business Space)中附带的 Dojo 版本,已经在 Mozilla Firefox 3.0.11 中测试过了.只是,我们开发的通用框架概念甚至可以应用到使用 Dojo 的应用程序中,但却不能用于 Business Space.学习本系列需要具备 DO

使用DOJO开发定制小部件,第2部分

使用DOJO开发定制小部件,第2部分:使用通用的网格处理程序生成DOJO DataGrid组件 简介 我们为本系列开发的定制小部件是基于 DOJO 1.2.3,并已经使用 Mozilla Firefox 3.0.11 在 WebSphere Integration Developer V6.2 上的 Business Space V6.2 中测试过.但是,我们开发的通用框架概念也适用于不使用 Business Space 的 DOJO 应用程序.学习本系列需要具备 DOJO 和 iWidget

使用DOJO开发定制小部件,第1部分:使用通用的markup处理程序生成DOJO markup

使用 DOJO 为 Business Space 开发小部件 我们为本系列开发的定制小部件基于 DOJO 1.2.3,已经使用 Mozilla Firefox 3.0.11 在 WebSphere Integration Developer V6.2 上的 Business Space V6.2 中测试过.但是,我们开发的通用框架概念也适用于不使用 Business Space 的 DOJO 应用程序.理解本系列需要具备 DOJO 和 iWidget 框架的基本知识. 我们要讨论在基于 DOJO

《HTML5实战》——第2章 创建表单:输入小部件、数据绑定以及数据验证

第2章 创建表单:输入小部件.数据绑定以及数据验证 本章主要内容 新的HTML5输入类型与属性 data-*属性,valueAsNumber元素以及output元素 约束验证API 绕过数据验证的方法 CSS3伪类 利用Modernizr进行HTML5特性侦测,利用polyfill进行回退兼容随着Web的日益成熟,用户开始需求更为丰富的表单字段类型及小部件,他们希望能有一种在各种Web应用中都通用的统一标准,特别是当涉及到数据验证时.HTML5充分迎合了这种需求,提供了13种新的表单输入类型,其