作者:Dflying Chen (http://dflying.cnblogs.com/)

本系列有三篇文章:

  1. ASP.NET Atlas简单控件介绍——Sys.Component基类与Sys.UI.Control基类
  2. ASP.NET Atlas简单控件介绍——InputControl,TextBox,Button和CheckBox
  3. ASP.NET Atlas简单控件介绍——Label,HyperLink,Select和Image

这篇是其中的第一篇:ASP.NET Atlas简单控件介绍——Sys.Component基类与Sys.UI.Control基类

ASP.NET Atlas中引入了客户端控件的概念,用面向对象思想将客户端JavaScript将要操作的DOM元素封装起来,带来了更清晰的代码模型以及更好的可复用性(不足之处是效率有所降低)。Atlas的客户端控件是连接JavaScript与DOM元素的桥梁,我们应该尽可能的使用客户端控件与DOM元素打交道,也就是以Atlas的方法来编写我们的程序。同时,Atlas对JavaScript面向对象方面的强大扩展(请参考:ASP.NET Atlas对JavaScript的扩展),也让我们很容易通过继承,覆写等方法来构建自定义的控件。

在前面的一些帖子中,我介绍了一些Atlas中较复杂的控件。但同时,Atlas也提供了一些比较简单/基础的客户端控件,同样在开发中十分有用,让我们通过这个系列来熟悉Atlas自带的简单客户端控件。

所有的Atlas客户端控件都继承于Sys.UI.Control基类,同时Sys.UI.Control继承于Sys.Component基类,让我们先看看Sys.Component提供的属性:

  1. id:Atlas组件的标识符,将Atlas客户端组件与DOM元素连接起来。这个id值与DOM元素的id属性值相同,Atlas使用这个id以找到相关的DOM元素。
  2. bindings:该组件的绑定集合。关于Atlas中的绑定,请参考:Atlas揭秘 —— 绑定(Binding)。
  3. dataContext:该组件的绑定的操作对象。如果您设置了这个属性,那么所有绑定条目默认会继承这个对象,但您也可以在绑定的声明中覆盖这个默认的设定。
  4. isInitialized:布尔值,代表该组件是否被初始化过。只读。
  5. isUpdating:该组件是否正在更新中,在开始调用beginUpdate()方法到调用endUpdate()方法期间为true,其他时间为false。只读。

Sys.Component还提供如下的方法:

  1. beginUpdateendUpdate:依赖于基类的实现,可以通过调用这两个方法延迟或一起更新一批组件,以提高性能或减少屏幕闪烁。
  2. initialize:构造函数,不必多言,继承类可以扩展该方法并初始化自己的成员。

还有如下事件:

  1. propertyChanged:当组件的某个属性变化时,应该引发该事件。Atlas绑定的实现依赖于这个事件。

现在让我们看看Sys.UI.Control提供的属性:

  1. accessKey:获取或设置控件的accessKey,该属性是DOM元素中的accessKey属性的包装。
  2. associatedElement:返回控件的相关DOM元素。这个属性应该传入给控件的构造函数,并在构造以后不可以修改。
  3. behaviors:该组件的Behavior集合。关于Atlas中的Behavior,请参考:在ASP.NET Atlas中创建自定义的Behavior。
  4. cssClass:获取或设置控件的CSS Class,该属性是DOM元素中的class属性的包装。
  5. enabled:代表该控件是否被启用,该属性是DOM元素中的enabled属性的包装。
  6. parent:获取或设置该控件的父控件。
  7. style:获取该控件相对应的DOM元素的style属性值。
  8. tabIndex:获取或设置该控件的tab index。
  9. visibilityMode:获取或设置该控件在隐藏时的显示模式,可选枚举值:Sys.UI.VisibilityMode.Collapse代表该控件隐藏时不占用页面空间,Sys.UI.VisibilityMode.Hidden代表该控件隐藏时依然占有其位置。
  10. visible:获取或设置该控件是否可见。

Sys.UI.Control同样提供如下方法:

  1. addCssClass:为该控件添加一个CSS Class。
  2. removeCssClass:删除该控件的一个CSS Class。
  3. containsCssClass:返回布尔值,代表该控件是否有指定的CSS Class。
  4. toggleCssClass:如果该控件没有指定的CSS Class,则添加,如果有,则删除。
  5. focus:使该控件获得输入焦点。
  6. scrollIntoView:使该控件滚动到屏幕可视范围内。
  7. onBubbleEvent:处理该控件的子控件发出的Bubble事件。您可以在这篇文章:使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航中找到该方法的实际应用。
  8. raiseBubbleEvent:该方法会调用该控件所有父控件的onBubbleEvent方法,来实现Bubble事件。您可以在这篇文章:使用 ASP.NET Atlas PageNavigator控件实现客户端分页导航中找到该方法的实际应用。

在接下来的几篇中,我会介绍继承或间接继承于Sys.UI.Control的Atlas内建控件,希望不会像这篇一样枯燥。

ASP.NET Atlas简单控件介绍——Sys.Component基类与Sys.UI.Control基类相关推荐

  1. ASP.NET Atlas简单控件介绍——InputControl,TextBox,Button和CheckBox

    作者:Dflying Chen (http://dflying.cnblogs.com/) 注:本系列文章比较基础,基本为Atlas官方文档的翻译,熟悉Atlas的朋友可以跳过. 本系列有三篇文章: ...

  2. Atlas客户端类库、控件介绍(2)

    今日任务: 在HTML元素中,实现鼠标的over.out事件非常简单,将onmouseover.onmouseout关联至相应的javascript函数即可.同样的,在Atlas框架模型里,需要实现同 ...

  3. ASP.Net服务端基本控件介绍

    lASP.Net服务端控件是ASP.Net对HTML的封装,在C#代码中就可以用txt1.Text='abc'这种方式来修改input的值,ASP.Net会将服务端控件转成HTML代码输出给浏览器.服 ...

  4. 构建安全的 ASP.NET 网页和控件

    本页内容 本模块内容 目标 适用范围 如何使用本模块 威胁和对策 设计注意事项 输入验证 跨站点脚本 身份验证 授权 模拟 敏感数据 会话管理 参数处理 异常管理 审核和日志记录 小结 其他资源 本模 ...

  5. ★★★【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(1)读者序】★★★...

    本书主要内容 大部分开发人员在学习Asp.net的过程中都有这样的体会,使用Asp.net开发很多年,但仍然感觉对Asp.net技术的了解比较少,对知识点的了解比较模糊:以及,在工作过程中经常接到克刻 ...

  6. 【开源】我的分页控件正式命名为QuickPager ASP.NET2.0分页控件

    分页控件正式命名为 QuickPager ASP.NET2.0分页控件 . 版本号:2.0.0.1 Framework:.net2.0 分页方式:PostBack .URL (暂时没有实现URL的分页 ...

  7. 从零开始学Pyqt5之【控件介绍】(15):绘图类控件QPainter、QPen、QBrush、QPixMap

    从零开始学Pyqt5之[控件介绍](15):绘图类控件QPainter.QPen.QBrush.QPixMap QPainter控件 QPainter控件的作用 QPainter控件常用方法 QPai ...

  8. ASP.NET 使用RegularExpressionValidator控件(数据输入格式验证)

    ASP.NET使用RegularExpressionValidator控件(数据输入格式验证)RegularExpressionValidator控件用于验证输入表单字段的值是否与某个正则表达式所定义 ...

  9. 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】

    ================================ 欢迎转载,但是请注明出处.本文出自博客园 .谢谢合作! ================================ 最新版本:V ...

最新文章

  1. tplink wr886n v5.0 ttl 接线方法
  2. Ceph 客户端的 RPM 包升级问题
  3. aix 5.3 安装oracle 10g r2,AIX 5.3 安装 Oracle 10g R2(64)
  4. 专为linux设计的笔记本,平板变笔记本,Linux 设备也要凑凑热闹
  5. 内存还剩余很多,却使用 swap 分区
  6. 安卓学习笔记24:常用控件 - 循环器视图
  7. Canvas -画图 关键字
  8. Splash 简介与安装
  9. 17. jQuery - css() 方法
  10. QQ小程序激励广告接入与使用
  11. 关于钢琴学习的若干问题的混蛋解答 【2014/1/29更新,未完待续…………】
  12. namecheap关闭域名自动续费的方法步骤
  13. 10-25 查询选修张老师讲授所有课程的学生
  14. php写poc,0day Poc编写指南(实战篇)
  15. Ambarella S6L55M 性能测试之内存篇
  16. 王牌竞速服务器维护,《王牌竞速》更新公告
  17. 如何注册公司邮箱?公司邮箱邮件这样写98%的人都爱看
  18. 利用OpenCV识别图片背景是否透明
  19. [TIM] 微信登录TIM生产QQ号【并独立使用】
  20. 深度学习在计算机视觉领域图像应用总结

热门文章

  1. python 进程池_Python实践17-进程池
  2. PHP随机静态页面生成系统源码雨尘SEO系统
  3. 简约超好看自适应团队介绍页源码
  4. 视频盒子APP视频播放源代码安卓+IOS双端源码
  5. 自学html代码,新手学HTML代码的简易方法
  6. vue 使用 better-scroll
  7. node学习笔记,第一个Node程序
  8. 百度网盘直接解析高速下载文件源码
  9. 风讯CMS常见问题锦集
  10. 程序员眼中的编程语言