ASP.NET Atlas简单控件介绍之两个基类
2024-07-10 13:07:06
供稿:网友
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提供的属性:
·id:atlas组件的标识符,将atlas客户端组件与dom元素连接起来。这个id值与dom元素的id属性值相同,atlas使用这个id以找到相关的dom元素。
·bindings:该组件的绑定集合。关于atlas中的绑定,请参考:atlas揭秘 —— 绑定(binding)。
·datacontext:该组件的绑定的操作对象。如果您设置了这个属性,那么所有绑定条目默认会继承这个对象,但您也可以在绑定的声明中覆盖这个默认的设定。
·isinitialized:布尔值,代表该组件是否被初始化过。只读。
·isupdating:该组件是否正在更新中,在开始调用beginupdate()方法到调用endupdate()方法期间为true,其他时间为false。只读。
sys.component还提供如下的方法:
·beginupdate与endupdate:依赖于基类的实现,可以通过调用这两个方法延迟或一起更新一批组件,以提高性能或减少屏幕闪烁。
·initialize:构造函数,不必多言,继承类可以扩展该方法并初始化自己的成员。
还有如下事件: propertychanged:当组件的某个属性变化时,应该引发该事件。atlas绑定的实现依赖于这个事件。
现在让我们看看sys.ui.control提供的属性:
·accesskey:获取或设置控件的accesskey,该属性是dom元素中的accesskey属性的包装。
·associatedelement:返回控件的相关dom元素。这个属性应该传入给控件的构造函数,并在构造以后不可以修改。
·behaviors:该组件的behavior集合。关于atlas中的behavior,请参考:在asp.net atlas中创建自定义的behavior。
·cssclass:获取或设置控件的css class,该属性是dom元素中的class属性的包装。
·enabled:代表该控件是否被启用,该属性是dom元素中的enabled属性的包装。
·parent:获取或设置该控件的父控件。
·style:获取该控件相对应的dom元素的style属性值。
·tabindex:获取或设置该控件的tab index。
·visibilitymode:获取或设置该控件在隐藏时的显示模式,可选枚举值:sys.ui.visibilitymode.collapse代表该控件隐藏时不占用页面空间,sys.ui.visibilitymode.hidden代表该控件隐藏时依然占有其位置。
·visible:获取或设置该控件是否可见。
sys.ui.control同样提供如下方法:
·addcssclass:为该控件添加一个css class。
·removecssclass:删除该控件的一个css class。
·containscssclass:返回布尔值,代表该控件是否有指定的css class。
·togglecssclass:如果该控件没有指定的css class,则添加,如果有,则删除。
·focus:使该控件获得输入焦点。
·scrollintoview:使该控件滚动到屏幕可视范围内。
·onbubbleevent:处理该控件的子控件发出的bubble事件。
·raisebubbleevent:该方法会调用该控件所有父控件的onbubbleevent方法,来实现bubble事件。
在接下来的几篇中,我会介绍继承或间接继承于sys.ui.control的atlas内建控件,希望不会像这篇一样枯燥。