sp.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. beginupdate与endupdate:依赖于基类的实现,可以通过调用这两个方法延迟或一起更新一批组件,以提高性能或减少屏幕闪烁。
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控件实现客户端分页导航中找到该方法的实际应用。
atlas
中的客户端控件均继承或间接继承于sys.ui.control基类(请参考:asp.net atlas简单控件介绍——sys.component基类与sys.ui.control基类),并有所扩展,本文将介绍atlas内建的简单控件inputcontrol,textbox,button和checkbox。
sys.ui.inputcontrol
inputcontrol类是一个抽象类,作为所有提供用户输入的控件(例如textbox,见下文)的基类,提供了输入数据验证等公有操作。inputcontrol抽象类提供如下属性:
1. isvalid:该属性为只读,返回布尔值,代表输入数据经过验证后是否合法,即是否通过了所有validator(请参考:在asp.net atlas中创建自定义的validator)的验证。
2. validationmessage:该属性为只读,返回string。当验证失败时,它包含第一个引发失败的validator的错误信息;若验证成功,则为空字符串。
3. validators:返回该inputcontrol的validator集合,您可以通过这个属性添加/删除某个validator来实现对用户输入信息的验证。
sys.ui.textbox
textbox控件是任何一种gui都必须提供的控件之一,也是我们最常用的和用户交互的控件之一。atlas中的textbox封装了type为input的dom元素input,或是dom元素textarea,继承于inputcontrol基类以获得输入数据验证的功能。textbox提供如下属性。
1. text:获取或设置textbox中的文字。
正因为textbox在实际程序设计中非常常用,所以我们也经常需要对它的扩展。关于对textbox空间的扩展,有兴趣的朋友请参考:
1. 使用asp.net atlas开发in place editing输入控件
2. 使用asp.net atlas开发随输入内容自动调整行数的textarea
sys.ui.button
button控件在gui中同样重要。atlas将dom元素中的button概念扩展,使button不单单指type为button或submit的html input元素,还可以应用到例如span,a等元素上,提供开发人员统一的编程接口。button提供如下两个属性:
1. command:获取或设置代表该button引发的命令名称的string。当该button的父控件允许event bubbling时,父控件的onbubbleevent事件处理函数中可以访问到该属性以得到该button传递过来的命令名称。
2. argument:获取或设置代表该button引发的命令参数的string。该button的父控件允许event bubbling时,父控件的onbubbleevent事件处理函数中可以访问到该属性以得到该button传递过来的参数。
以上两个属性在某些情况中非常有用,您可以在这篇文章:使用 asp.net atlas pagenavigator控件实现客户端分页导航中看到它们的实际应用。
button还提供如下的事件:
1. click:在该button被点击时触发。
注意:当某个button被点击时,首先触发的是该button的click事件,然后再触发该button父控件的onbubbleevent事件。
sys.ui.checkbox
atlas中的checkbox封装了type为checkbox的input dom元素。用户可以使用它输入一个布尔值。checkbox提供如下属性:
1. checked:获取或设置代表该checkbox是否被选中的布尔值。
checkbox还提供如下事件:
1. click:在该checkbox被点击时触发。
atlas中的客户端控件均继承或间接继承于sys.ui.control基类(请参考:asp.net atlas简单控件介绍——sys.component基类与sys.ui.control基类),并有所扩展,在上一篇文章(asp.net atlas简单控件介绍——inputcontrol,textbox,button和checkbox)中,我介绍了inputcontrol,textbox,button和checkbox控件。本文将继续介绍atlas内建的剩下四种简单控件:label,hyperlink,select和image。
sys.ui.label
atlas中的label控件可以用来显示一段文字,同时也可以作为一段html的占位符。label控件有如下属性:
1. text:获取或设定label中的内容。该内容既可以以文本方式显示或是以html方式显示,取决于htmlencode属性的设定。
2. htmlencode:获取或设定一个布尔值。代表label中的内容是否以纯文本方式显示,默认值为false。
sys.ui.hyperlink
hyperlink控件继承于sys.ui.label,用来封装html中的a元素。hyperlink除了拥有label的所有属性以外,还提供如下属性:
1. navigateurl:获取或设置hyperlink中的导航url,是对a元素的href属性的包装。
如下事件:
1. click:在该hyperlink被点击时触发。
sys.ui.select
select控件封装了dom元素select,可用来表示一个drop down list。select控件有如下属性:
1. firstitemtext:获取或设定list中的第一项的文本。可以被设置成诸如“请选择……”等文本来提示用户输入。默认值为空,即不显示提示输入的文字。
2. selectedvalue:获取或设定该list中被选中的条目的值。
3. data:获取或设置一个datatable(关于atlas客户端datatable对象,请参考:atlas命名空间sys.data下控件介绍——datacolumn,datarow和datatable),代表该select中的数据。
4. textproperty:获取或设置一个string,代表data属性中的datatable里,将作为该select中条目中的文本显示的字段的名称。
5. valueproperty:获取或设置一个string,代表data属性中的datatable里,将作为该select中条目中的值的字段的名称。
如下事件:
1. selectionchanged:在该select中被选中的条目变化时被引发。
sys.ui.image
image控件作为对dom元素img的封装,提供如下属性:
1. imageurl:获取或设置一个代表图片路径的字符串,是对img元素的src属性的封装。
2. alternatetext:获取或设置一个代表图片文字说明的字符串,是对img元素的alt属性的封装。
3. width:获取或设置图片的宽度。
4. height:获取或设置图片的高度。
原文地址:http://dflying.cnblogs.com/archive/2006/05/07/introduct ... label_hyperlink_select_image.html
新闻热点
疑难解答
图片精选