数据控件(精选12篇)
数据控件 篇1
1 引言
数据绑定是从一个对象中提取信息, 并在应用程序的用户界面中显示所提取的信息。同时这种绑定存在着单向绑定, 即只能够查看绑定的信息; 双向绑定, 即既能查看绑定的信息也能够修改绑定的信息。是开发应用程序时经常使用到的一种技术。
WPF ( Windows Presentation Foundation) 是一种用 于Windows的图形显示系统。与以往的Windows窗体不同, WPF是针对.NET这一技术而设计的, 受现代显示技术 (如HTML和Flash) 以及硬件加速技术的影响。
介绍的就是基于WPF和Visual C# 编程语言进行窗体控件数据绑定的相关流程以及代码编写。这与以往的Windows窗体开发过程中的数据绑定既有相似的地方也有其自身的特点。特别是在后台的实现方式上有重大的改变, 增加了很多新功能和细微调整。虽然与Windows窗体开发中的数据绑定使用了一些相同的概念, 但在实现中却是不同的代码。
在基于数据库进行信息系统软件开发过程中, 总是要与数据库中各种各样的数据打交道。以一个简单的员工管理系统作为例子。 在员工数据库中存在一张员工信息表, 表中有字段“ID”、“Name”、“Tel”分别记录了员工的“编号”、“姓名” 和“联系电话”。为了简单起见, 只列举了少数几个字段, 方便进行演示。字段的多少对采用的方法没有任何影响。
在员工管理系统的用户界面上, 希望当用户只要查找或点击某一个员工的编号, 与员工编号的相关联的信息就相应出现, 例如此员工编号的姓名和联系电话。如图1所示。
要实现这个功能, 不使用数据绑定技术当然也能够实现。但是这是需要大量的代码来实现的, 在上面的演示中只使用了3个控件来显示数据 , 而且数据库中的字段也只有寥寥几个。如果应用到一个庞大的数据库系统中, 如果对每一个控件或是字段的显示都要通过代码来实现那将是一个复杂的工程, 而且非常容易顾此失彼, 出现各种各样的错误。
而使用数据绑定技术, 只需要不多的代码就能够实现这一功能, 而且易修改、易维护。
2 数据绑定前的准备工作
在与数据库连接之前, 先建立一个员工类Employee类, 代码如下:
在这个员工类中, 具有3个属性, 分别记录了员工的编号、姓名和电话。这是需要在控件中显示和修改以及保存的信息。
在数据绑定中, 一般绑定的数据都来自数据库中。例如要绑定 的数据库 中存在一 张员工表 , 表中有字 段“ID”、“Name”、“Tel”。首先要将数据库代码封装到一个专门的类中。这个类中主要提供查找数据的各种方法, 再建立数据访问类的基本框架:
小技巧之一: 如何在整个应用程序中使用同一个数据库实例。
建立了数据库类, 但是发现存在一个问题。当在不同的窗体或自定义控件中需要访问数据库时, 必须在每一个窗体或者自定义控件中, 创建StoreClass类的一个实例。这样才能保证在窗体或自定义控件中做到对数据库的访问。
这种做法既麻烦又效率低下。需要一种方式使得在整个应用程序中只需创建StoreClass类的单一实例, 就能够在整个应用程序中访问数据库。
解决办法就是在Application类中创建 一个实例 , 通过Application类的静态属性使用该实例。具体代码如下:
这样当需 要使用StoreClass类中的GetOneInformaiton ( ) 方法时, 就直接调用App.DB.GetOneInformation ()。
3 单个对象的数据绑定
经过前面的工作, 现在需要做的就是将绑定对象显示出来。首先需要在窗体的.xaml文件中编写相应的XAML代码。这主要是设计控件在窗体中的位置和相应功能。代码中加粗的部分就 是对控件TextBlock的Text属性进行绑定。将Employee类中的属性“ID”、“Name”和“Tel”分别绑定到3个TextBlock控件上。
但仅仅这样是不够的, 现在虽然程序已经可以运行, 但控件上不会显示任何信息。这是因为虽然定义了绑定, 但是没有获得数据的源对象。要实现数据绑定, 就要对Grid控件中的DateContext属性进行 设置。首 先将Grid控件命名 为“DateBinding” , 然后设置其DateContext属性。设置成功后 , 所有绑定表达式都会通过该属性使用数据填充自身。
当用户单机“获取一个员工信息”按钮时, 会响应下面的事件处理程序。
小技巧之二: 如何处理具有Null值的绑定。
通过以上代码, 可以获得员工表中的信息, 并将其绑定在相应的控件上。但是在数据库中可能会有可空字段, 在字段中Null值表示值缺失或是值不可用。为了处理这类信息的显示 , 可以在绑定表达式中设置TargetNullValue属性改变WPF对null值的处理。例如 , 当Employee.tel属性值为null值时 , 要显示为“无具体信息”, 可以在Textblock中添加以下代码:
Text="{Binding Path=Tel, TargetNullValue=[无具体信息]}"
TargetNullValue属性中方括号内的值可以自定义设置 , 用来帮助用户确认显示的文本不是来自于数据库中的值。
4 对象集合的数据绑定
通过前面的步骤, 已经将数据绑定到单个对象上去了, 而且非常直观。现在讨论如何将数据绑定到对象集合中去, 这一功能也是经常使用到的。例如在员工信息管理系统中, 当然不能只有一个员工, 要使每一个员工的信息都能够只需轻轻一点就能够显示出来, 这就需要将数据绑定到对象集合中去。
依旧以前面的员工表为例, 这次使用了一个ComboBox控件命名为“MoreDate”来显示所有员工的编号。为了简要说明, 所以在数据库中一共只有两个员工。如果要显示更多数量的员工信息, 方法是一样的。
首先在数据库中需要定义一个方法, 来查找所有员工的信息。
然后当点击“获取所有员工信息”按钮时, 响应一个事件。
经过这两步就已经通过访问数据库将需要显示的信息已经提取出来, 下面就将这些数据绑定到窗体控件上去。实现的方法有几种, 采用最快并且最少编写代码的方式来实现。那就是对Grid.DataContext属性设置绑定表达式。
当首先显 示窗体时 , 在列表中 没有选择 任何内容 , ComboBox. SelectedItem属性值为Null, 所以不会显示任何信息。点击完“获取所有员工信息” 按钮后, 再点击ComboBox控件就会发现, 里面有所有员工的编号。点击其中员工的编号, 在其他已存在绑定表达式的控件中就会出现相应内容。如
图2所示。
小技巧之三: 如何让ComboBox显示需要的信息
当ComboBox. ItemsSource获取的是一个实例的所有信息时, 如果不做处理, 那么当点击控件时, 会看到的是这个类, 而不是需要的信息。如图3所示。
如果要显示员工编号, 就需要对控件进行处理。要设定ComboBox.DisplayMemberPath属性。将此属性设置为“ID”。
这样就可以得到需要的效果。
5 结语
通过以上几步, 就完成了对窗体控件的数据绑定。发现这已经具备了很多的功能。
(1) 可以很方便地点击员工编号就可以看到员工的其他信息, 如: 姓名和电话。
(2) 可以修改员工信息中的内容 , 可以轻松修改TextBox控件中的内容。
(3) 修改的内容已经保存 , 并提交。例如修改了某编号 下员工姓名, 会发现这种改变已经保存下来。当再次点击此员工编号, 姓名中显示的是更新后的信息。当然这种改变仅仅只是控件显示信息, 在数据库中的信息还是需要使用UPDATE方法对其进行更新。
通过数据绑定, 就让窗体控件具备了这麽多强大的功能。而且这些功能只是用少量的代码就实现了, 在降低了代码维护难度的同时提高了代码的重用性, 无疑增加了软件开发的效率。这对在信息系统类应用程序开发过程中经常遇到的人机交互界面指明了一条简捷之路。
数据控件 篇2
本文设计的这个例子是这样的:在表单激活时(Activate事件),采用类似vb控件数组的处理方式在循环语句中为各个标签设置属性,如下图1;在命令按钮的click事件中,通过单击将5个标签的caption属性值依次显示出来,如下图2;
图1
图2
制作步骤如下:
一、新建表单,将其AutoCenter属性值设置为.t.,保存为“表单1.scx”。
二、向表单上添加5个标签控件label1~label5,将它们的caption属性值依次设置为“编”、“程”、“入”、“门”、“网”。
三、向表单上添加一个命令按钮command1,将其caption属性值设置为“显示字符”。
四、适当调整各控件的位置,如下图:
五、添加事件代码:
1、表单的Activate事件代码:
public top,nlocal fs,fb,fcn=1top=thisform.label1.topfor i=1 to 5 t=“label”+str(i,1)+“.top” fs=“label”+str(i,1)+“.fontsize” fb=“label”+str(i,1)+“.fontbold” fc=“label”+str(i,1)+“.forecolor” thisform.&t=-50 &&依次把5个标签的top属性值设为-50,实际是把它们隐藏起来 thisform.&fs=12 &&依次把5个标签的fontsize属性值设为12 thisform.&fb=.t. &&依次把5个标签的fontbold属性值设为.t. thisform.&fc=rgb(255,0,0) &&依次把5个标签的forecolor属性值设为rgb(255,0,0)endfor
2、命令按钮command1的click事件代码:
t=“label”+str(n,1)+“.top”if thisform.&t<=top-50 thisform.&t=top n=n+1 if n=6 n=1 this.enabled=.f. messagebox(“字符已经全部显示完毕!”) return endifendif
六、运行“表单1.scx”,
数据控件 篇3
[关键词]PowerPoint;控件;控件工具箱 1013939/jcnkizgsc201520230
1 控件的概念
控件是一种图形用户界面元素,用户可与之交互以输入或操作数据的对象。PowerPoint 中的 ActiveX 控件结合相应的 VBA 编程可以实现很多复杂的交互,下面笔者将结合具体实例来介绍一下几种常见的应用。
2 在PowerPoint中插入Flash影片和控制Flash影片
21 将指定SWF文件保存到课件所在文件夹中
(1)从网站或其他途径下载、拷贝、制作SWF文件。
(2)保存文件到课件所在文件夹中。
(3)给这个改个容易记的名字,并查看这个SWF文件的所在路径、全名。
22 将SWF文件插入到自己的PPT中
(1)打开课件,选择指定幻灯片;
(2)单击“视图”菜单,选择“工具栏”中的“控件工具箱”,点击 “其他控件”,从下拉列表中选择 “Shockwave Flash Object”,当指针变成“十”字光标时,在幻灯片上画出一个方框;
(3)在方框上鼠标右击,选择“属性”,在“影片URL”中输入SWF文件的所在路径、全名,或在属性对话框的Movie后输入路径和文件名即可。
23 保存文件
注意:SWF文件要和PPT文件放在一个文件夹中;要嵌入 Flash 文件,在PPT文件移动时,不再移动SWF的原文,需将EmbedMovie 属性设为True。
24 设置播放/暂停按键
(1)点击“控件工具箱”中的命令按钮,在Flash影片下画出两个,将属性中的Caption改为“暂停”和“播放”。
(2)双击暂停按钮,弹出VBA窗口,在“PrivateSubCommand-Button1_Click()”与“EndSub”之间输入“ShockwaveFlash1Playing=False”(即暂停)。(ShockwaveFlash1即Flash控件名。)
(3)双击播放按钮,在VBA窗口的“PrivateSubCommandButton1_Click()”与“EndSub”之间输入“ShockwaveFlash1Playing=True”(即播放)。
3 用Windows Media Player控件随意控制音视频播放
(1)新建一张幻灯片。
(2)同上操作,打开“控件工具箱”面板,选择“其他控件”中的“Windows Media Player”控件,在幻灯片中画出一个矩形区域。
(3)右击播放器,选择“属性”命令,在“属性”对话框中,单击 “自定义”后的……,在“文件名或url”中键入音视频文件的路径和文件名,或在属性对话框的Movie后输入路径和文件名,保存文件。
(4)播放时,可以通过播放器对音视频进行随意控制。
注意:在PPT中能插入的动画和视频、音频格式。
动画:SWF、GIF;视频:AVI、MPG、WMV;音频:AVI、MPG、WAV、MID、MP3(有的不支持)。
4 滚动“文本框”
在课件制作过程中,如果有些文字内容需要显示在一张幻灯片中,但一页显示不全时,可以在文本框中拖动滚动条显示文字,这时可设置滚动文本框实现操作。具体步骤如下:
(1)新建一张幻灯片,选择版式。
(2)点击“控件工具箱”中的 “文本框”控件,在编辑区按住左键拖出一个文本框,适当调整。
(3)“文本框”属性设置:右击“文本框”,选择“属性”,弹出“文本框”属性窗口,进行设置如下:
允许使用回车键换行,EnterKeyBehavior设为True;输入多行文字,MultiLine设为True;利用滚动条来显示多行文字内容,ScrollBars属性中1-fmScrollBarsHorzontal为水平滚动,2-fmScrollBarsVertical为垂直滚动,3-fmScrollBarsBoth为水平滚动条与垂直滚动条均存在,根据需要设置。当文字超出文字框时会出现拖动的滚动条。适当设置其他属性,如BackColor(文本框背景色)、TextAlign(文字对齐方式)等。
(4)文本框内容输入:右击“文本框”,选择“文字框对象”中的“编辑”,输入文字内容,即可完成制作。
至此,随滚动条上下拖动而移动文字的文本框就完成了。
5 智能交互式课堂练习
51 填空题的制作
用前面的方法,插入一个命令按钮、一个文本框控件。將命令按钮的Caption修改为“练习”,双击命令按钮控件,在VB窗口的“Private Sub CommandButton1_Click()”与“End Sub”之间输入以下代码:
If TextBox1Text="mini" Then
MsgBox("Yes")//(消息框显示为Yes)
TextBox1Text=""
Else MsgBox("No")//(消息框显示为No)
TextBox1Text=""
EndIf
(Textbox1文本框控件名,MsgBox显示消息框信息)
52 单选题的制作
插入四个选项按钮和一个命令按钮。将选项按钮名称改为op1、op2、op3、op4,Caption改为A、B、C、D,把它们放在对应的选项前面。
把命令按钮的Caption修改为“练习”,双击“练习”按钮,在“Private Sub CommandButton1_Click()”与“End Sub”之间输入以下代码:
If op1Value=True Then
MsgBox("GOOD!正确")
Else
MsgBox("错误,正确答案为A")
End If
53 判断题的制作
与单选题的制作方法基本相同,只需将选项设置成“正确”和“错误”两个。
其他智能操作如通过控件实现翻页、做多项选择题、添加超链接等均可使用不同控件及相应的VBA编程来完成。
如果编完程序却运行不起来,可以修改“工具栏/宏/安全性”级别选“中”或“低”,最终实现交互功能。
参考文献:
[1]吴欣平如何在PowerPoint课件中插入WindowsMediaPlayer视频控件[J].中国教育技术装备,2007(01).
数据控件 篇4
(1) ASPxFormLayout拥有灵活多样的自动对齐。可根据设置, 采用左对齐、右对齐、居中对齐、根据页面宽度自适应对齐模式等等, 免去开发者手工去匹配不同的分辨率来调整页面多种控件的排列;
(2) ASPxFormLayout拥有多种灵活分组模式。可根据需要, 使用Group或者TabControl等多种方式来创建分组模式,使得不同的数据项之间的分类关系一目了然。而且这些分组模式只需简单拖拉即可。
(3) ASPxFormLayout对第三方控件的完美支持。ASPxFormLayout不仅支持自家的控件组件, 也完全支持包括.Net原生控件在内的三方控件, 而且没有任何排斥性, 很完美。
(4) ASPxFormLayout控件中的子控件均支持实时编辑数据而无需切换状态。与ASPxGridview需要在展示数据和编辑数据两种状态之间切换的特点不同, ASPxFormLayout控件的展示状态和编辑状态完美融合为一体, 无需切换, 用起来非常方便。
首先, 看看常规的使用方法。
假定已具备有适当的开发环境 (具体请看上面的开发环境要求)。新建一个项目, 新建一个WebForm窗体, 然后打开工具栏, 找到ASPxFormLayout控件, 把它拖拉到WebForm窗体上, 之后, 再拉一个Objectdatasource和一个ASPxButton控件上来, 如图1所示。
接下来, 需要对该控件的属性进行几个属性设置, 包括但不仅仅是: 数据源ID、宽度等。设置了这么多属性以后, 重头戏来了: 设置表ASPxFormLayout的Item, 即用哪些控件来展示和编辑数据。来看看这个过程是怎么做的。
点击ASPxFormLayout右上角的小箭头 (图2中的标记1所示位置), 然后点击Edit Layout…… (图2中的标记2所示位置)。即可看到图3所示界面了。
这里需要来添加具体的子控件到ASPxFormLayout中。做法是:
(1) 点击图3中标识1所示位置 , 然后点Layout ItemWith (标识2所示位置), 之后, 在标识3所示位置选择需要的控件类型, 有20余种可供选择, 每种都有n多个属性需要设置调整。
(2) 选择了某个控件类型之后 , 该子控件就会出现在ASPxFormLayout中, 同时在右侧会出现详细属性设置窗口, 在图3中的标识4处, 选择该控件绑定的字段名称 (这里选择了ControlName字段), 然后在图3中的标识5处, 录入该字段的显示名称, 这里以“控件类型”为例。
(3) 这里还有其他很多可供选择的属性可以设置, 比如是否显示标题文字、对齐方式、文字大小、外观样式等等, 读者可以自行设置, 这些对数据的展示与编辑没有决定性的影响,这里不再赘述了。
(4) 设置完所有的字段控件以后, 点击OK按钮, 返回到页面设计器, 就看到下面这样的页面变化了, 如图4所示。
(5) 对于一些特别一点的编辑控件 , 比如ASPxCombobox和ASPxTreelist以及ASPxGridLookup等高级编辑控件, 还需要进行进一步的设置。这里以ASPxCombobox为例来做一个示范。点击 图4中的控件 类型右侧 的下拉列 表编辑框(ASPxCombobox) (图4中的标识1所示位置 )。之后看右侧的属性窗口中具体的设置。如图5所示。
点击Items (图5所示1的位置), 弹出左侧的Items Editor窗口, 在标识2的位置单击, 即可添加item到窗口中, 然后在Properties窗口 (标识3所示位置) 设置item的Text和Value属性。这样, 就添加了一个item到ASPxCombobox中去,依次添加完所有需要的item点击OK按钮返回。
(6) 若需要对编辑控件进行更多的设置, 请留意图5中标识4所示位置, 每个+都可以展开, 里面有很多属性可以进行设置, 主要是外观属性, 引发的动作事件等等, 这些与这里讲诉的主题不是很紧密, 就不再多说了。
到这里为止, 已经设置好了ASPxFormLayout控件, 运行就可以看到图6所示的页面了。
而这样的页面对应的代码文件如图7所示。
回顾上面的设计过程, 不难发现, 面对动则几十个字段的数据表来说, 这样的过程是繁琐而枯燥的, 还是想想怎么用代码来自动实现这些吧。
仔细观察上面这些工作所生成的代码, 不难发现, 其实在设计器中做了那么多, 无非就是生成了图7中所示的那些代码。那么自然是有办法用后台代码来让计算机自动生成的。对比不同的编辑控件的代码, 可以找到一些共同点:
(1) 每个控件都需要配套一个LayoutItem。
( 2) 每个编辑控件都需要设置几个共同的属性 : ID,ReadOnly (只读 ), FieldName (绑定的字段名称 ), 以及统一的外观、位置等。
(3) 对于高级编辑控件, 需要设置更多的属性。这么一来, 就可以写出下面这样的代码了:
1) 从之前配置的数据中取得当前数据表的配置信息 (相关信息请看发表于《电脑编程技巧与维护》2013年2月上的文章《动态配置ASPxGridview控件》一文中的介绍:
2) 针对不同的字段配置, 进行不同的处理, 这里以文本编辑框为例:
上面代码中, 对于LayoutItem的共有属性使用了一个公用的方法setLayoutItem。这个方法的代码如下:
有了这样的代码, 都写入类中, 具体使用的时候, 只要一句代码来调用上面的方法就可以了。
来看看这样处理以后, 开发一个这样的页面所需要做的工作吧:
(1) 拉一个ASPxformLayout控件到窗体上;
(2) 设置ASPxformLayout的数据源ID;
(3) 在后台代码中的Page_Load事件中写一句代码 (上面的那句代码);
(4) 运行。完成。
摘要:ASPxFormLayout是DXperience开发控件中便于展示数据和编辑数据记录较新的控件,在ASPxGridview的编辑模式,以及其他单条记录的处理中有很好的表现。尝试用一个静态的类全自动设置,从而避免该控件繁杂的配置过程,使应用该控件开发的过程变得更简单高效。
Android 输入控件 篇5
今天天气不错虾米 来讲解 Android中输入的控件 在 Android中输入控件是常见的 随处可见 今天又时间 写一篇Android中输入控件的集合 了解他们的相同处和不同处,下面是Android系统中我们常用到的输入控件 好 废话不多 开始:
Android已经为接受来自用户的输入多种不同的输入控件的支持,
Android 输入控件
。常见的输入控件包括:
ButtonsText FieldsCheckboxesRadio ButtonsToggle ButtonsSpinnersNumberPicker Date and Time Pickers
Android 将一个输入控件添加到您的用户界面非常简单 ,将xml元素添加到xml布局.
Buttonsvc3Ryb25nPgo8c3Ryb25nPiAgICAgICBBbmRyb2lkudm3vb3iys2jurC0xaW0+rHt0ru49rC0xaWyv7z+oaO/ydLUsLTPwrC0xaUsu/LV37Xju/cs08nTw7unwLTWtNDQ0ru49rav1/eho9K7uPa15NDNtcQgICAgICAgIMq508PSu7j2u+62r72rz8LD5rXEsLTFpTo8L3N0cm9uZz4KPHN0cm9uZz4gICAgICAgIDxCdXR0b248YnI+CiAgICAgICAgICAgICAgICBhbmRyb2lkOmlkPQ==”@+id/button_id“
android:layout_width=”10dp“
android:layout_height=”8dp“
android:layout_gravity=”center“
android:layout_marginRight=”10dp“
android:layout_weight=”1“
android:background=”@drawable/login_input_arrow“ />
public class MyActivity extends Activity { protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.content_layout_id); final Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener { public void onClick(View v) { // Perform. action on click } }); } }
Text Fields一个文本字段允许用户输入文本到您的应用程序。它可以是一行或多行。触摸一个文本字段位置,光标,并自动显示键盘。除了打字,文本字段允许各种各样的其他活动,例如文本选择(剪切、复制、粘贴)和数据通过自动完成查找。
Android:inputType:输入的类型 允许输入Text(字符串) TextEmailAddress(email的地址) texturi(网址)number(数字) phone(号码) textCansentences() textcapwords()textautocurrect() textpassword() textmultiLine()
For example, here‘s how you can collect a postal address, capitalize each word, and disable text suggestions:
Checkboxscheckboxs 允许用户选择一个或多个 通常 checkboxs是一个列表在一个垂直下拉框中
在一个Activity 判断checkbox是否选中
public void onCheckboxClicked(View view) { // Is the view now checked? boolean checked = ((CheckBox) view).isChecked(); // Check which checkbox was clicked switch(view.getId()) { case R.id.checkbox_meat:if (checked) // Put some meat on the sandwichelse // Remove the meatbreak; case R.id.checkbox_cheese:if (checked) // Cheese meelse // I‘m lactose intolerantbreak; }}
Radio Butons单选按钮允许用户选择一个选项从一组。如果不是必要并排显示所有选项,使用微调控制项。
创建每个单选按钮选项,创建一个RadioButton在你的布局。然而,由于单选按钮是互相排斥的,你必须RadioGroup内它们分组在一起。通过分组在一起,可以选择系统确保只有一个单选按钮。
public void onRadioButtonClicked(View view) { // Is the button now checked? boolean checked = ((RadioButton) view).isChecked(); // Check which radio button was clicked switch(view.getId()) { case R.id.radio_pirates:if (checked) // Pirates are the bestbreak; case R.id.radio_ninjas:if (checked) // Ninjas rulebreak; }}
Toggle Buttons切换按钮允许在两种状态之间切换设置您可以添加一个基本的切换按钮与布局切换按钮 对象。的Android 4.0(API等级14)引入了另一种切换按钮,称为它提供了一个滑块控件,您可以使用添加开关交换对象,
电脑资料
(切换按钮) 开关 (Android4.0+)响应点击事件
当用户选择一个切换按钮和开关,对象收到的点击事件。
要定义Click事件处理程序中,添加机器人:的onClick属性的<切换按钮>或<开关>元素在XML布局。该属性的值必须是要在响应click事件调用的方法的名称。该活动举办的布局必须再执行相应的方法。
例如,这里有一个切换按钮与安卓的onClick属性:
public void onToggleClicked(View view) { // Is the toggle on? boolean n = ((ToggleButton) view).isChecked(); if (on) { // Enable vibrate } else { // Disable vibrate }}
SpinnersSpinner提供一个快速的方法来选择一个值从一组。在默认状态,微调器显示当前选择的价值。触摸Spinner与所有其他可用值显示一个下拉菜单,用户可以选择的一个新的。spinner布局
Create a spinner like any view and specify the android:entries attribute to specify the set of options:
特别的string array 的条目在res/values/planets_arrays下
查看Spinners指南更多细节。注意,定制一个微调控制项的文本需要使用自定义数组适配器和布局文件。
获取和设置多值String str_spinner=spinner.getseletedItem().toString();
public void setSpinnerToValue(Spinner spinner, String value) { int index = 0; SpinnerAdapter adapter = spinner.getAdapter(); for (int i = 0; i< adapter.getCount(); i++) { if (adapter.getItem(i).equals(value)) { index = i; break; // terminate loop } } spinner.setSelection(index);}
自定义ArrayAdapter 资源
Spinner spinner = (Spinner) findViewById(R.id.spinner);// Create an ArrayAdapter using the string array and a default spinner layoutArrayAdapter
Multiple Select Spinner
By default, the spinner only allows the user to select one option from the list. Check out the following resources surrounding multiple selection spinners:
MultiSelectSpinner - Simple multi-select library
MultiSelect Tutorial 1
MultiSelect Tutorial 2
Simple Multi Dialog
Note that we can also use a ListView in this case instead to avoid a spinner altogether.
NumberPicker
This is a widget that enables the user to select a number from a predefined range. First, we put the NumberPicker within the layout XML:
Then we must define the desired range at runtime in the Activity:
public class DemoPickerActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo_picker); NumberPicker numberPicker = (NumberPicker) findViewById(R.id.np_total); numberPicker.setMinValue(0); numberPicker.setMaxValue(100);numberPicker.setWrapSelectorWheel(true); }}
Note we set the range with setMinValue and setMaxValue and made the selector wrap withsetWrapSelectorWheel. If you want to listen as the value changes, we can use the OnValueChangeListener listener:
// within onCreatenumberPicker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { Log.d(“DEBUG”, “Selected number in picker is ” + newVal); }});
You can also call getValue to retrieve the numeric value any time. See theNumberPicker docs for more details.
数据控件 篇6
关键词 航材管理 时控件 自动化管理 监控 报告
中图分类号:P626.112 文献标识码:A
0 前言
当今世界已经进入了信息化产业的时代,作为一个高技术、高风险的行业,民航对于计算机的需求也与日俱增,电子管理和网络化应用是现代民航企业发展的主流和趋势。如何合理地利用计算机管理,尽量减少人为差错,增强安全因素,也就成了研究和发展的重要课题。
在时控件项目中,有的设备和零部件具有寿命或使用时限的限制,有的设备和部件需要定期测试、校验。这些使用限制或检查要求都是强制性的。对于我公司承担的吉林省的飞机人工增雨雪任务特殊性, 一般是不允许这样的情况出现的。因此,实现对飞机时控件的自动化管理,对控制航材成本、保证飞行正常进行、保证飞行安全具有十分重要的意义。
1 时控件管理概述
时控件管理分为:装机时控件、库存时控件、时控件拆换等。时控件管理工作直接影响航空器的适航性。生产部门的时控件管理工作是以经批准的维修方案为依据,对时控件实施监控。根据每个时控件实际使用时间(如:飞行小时、起落、发动机循环、日历时间等),制定更换计划,提前发出更换或检查指令,并监督确认指令的落实。
航材时控件管理比较复杂, 品种多, 数量大, 随机需要涉及面广。首先, 时控件不同于一般的零部件, 需要掌握更多的时控件的寿命和换件信息。其次, 要做好航材计划工作, 计划员必须对所管机型的时控件有必要的了解,所以航材时控件管理工作是一项既复杂又意义重大的工作。
2 时控件管理的现状和存在的问题
国外很多先进航空公司的时控件管理已完全采用电脑化先进管理模式来提高管理的效率,而国内计算机信息化在统一通用航空飞机维修行业的应用却比较落后,很多工作都是手工管理,或是半手工计算机管理。目前机务部门对于时控件管理工作存在以下缺陷:
2.1 机务生产时控部门没有合理调整好时控件梯
从时控件换件计划来看, 基本上集中在上半年4~6月份和下半年的9~11月份, 1~3月份期间时控件相对来说是比较少的。而且每次都是本月下发下个月的时控件换件通知单, 而航材的准备时间也只有一个月左右, 时间十分紧张。如果航材部门不在时控件换件通知单下发前3个月订货, 就很难保障时控件的供应。
2.2 时控件监控精度低
因为从时控件更换计划清单之后便全部都是手工操作,为保障在到期之前完成工作,往往都是很长时间之前交到生产科作安排,然而在生产科做时控件管理时全部是将监控的数据如飞行时间、发动机时间与飞机起落、飞机循环小时数等手工录入计算机存档,监控工作则从新停留在纸面上分析,无法对计算机里的数据进行使用造成监控精度低、效率低、易产生人为差错,一个时控件本来可以全寿命服役,可能因此会造成完成其服役寿命的90%。
3 时控件管理系统设计理念
时控件管理系统的主要完成工作是:应用先进的计算机技术建立一个涉及时控件监控室、航材科、生产科的时控件管理控制系统,从而完成对时控件寿命的监控与警报,有效地使用时控件,提高经济效益。
(1)实用性。机务人员不是计算机专家,因此必须考虑系统的实用性和易用性,再加上是时控件监管人员少,所以我们必须摈弃华而不实的功能,运用计算机技术构建一个实用的系统,任何功能都能达到简单而有效的目的。
(2)容错性。此系统运行基本表现为人机不断交互操作,这样误操作、输人不合理数据的情况很难避免。因此管理程序应有较强的容错性。除非用户按强制中断键,程序应做到不死机。由于程序内免不了有计算处理,输人不合理数据引起死机情况时有发生。
(3)安全、稳定性。时控件监控系统要求安全、稳定,因此对系统的数据安全保障机制提出严格的要求,不能因为计算机系统故障而延误时控件的监控和警报。
4 系统的数据结构
具体的数据结构。系统的主要数据结构为关系型数据库。核心数据库为时控件清单和时控件装机清单。其中时控件装机清单数据库包括以下数据:序号、机号、安装位置、装机时间、生产日期、装机参数、限制寿命、翻修后使用时间、翻修后使用循环、累计寿命、监控时限、剩余寿命、到寿日期。该清单实行动态管理,实时跟踪时控件整个生命周期。而时控件清单则相对稳定,除非维修方案出现变动。
5 监控模块
该模块成为时控件管理系统的核心,其完成的功能如下:(1)根据各清单,飞机运行所记录的各个参数,来记录监控信息,包括:机身循环、飞行循环、飞行小时数、日历月、发动机循环数、发动机工作时间等,再依据上次检查日期、上次大修日期、装机时间来计算出到寿日期,并进行报告。(2)多个监控数据条件下的时控件分别按照各个条件计算到寿日期,然后去日期先到的为准进行时控件到寿报告。(3)按照到寿日期排列时控件更换计划,并能够显示各时控件的剩余寿命。
6 系统的维护
管理系统的维护同样是必不可少的。另外在编写软件时要注意开发数据库修复工具,如我们常提供数据库合并功能,即用户对同一程序可建立多个数据库分别操作。然后可把各库内的内容有选择地合并到一个指定的库中去。这样一旦发生操作系统或硬件故障,库内部分记录损坏,就可用合井库功能把尽可能多的好记录取出来,移到一个新库去。
7 总结
时控件管理是机务管理的重要工作之一, 加强时控件管理,突破以往手工作业为主的监控模式,引入计算机技术,利用信息化的管理系统对时控件进行监控与报告,实行精细化管理,对保障飞行训练正常进行、控制航材成本、保证机务各部门的协调一致有重大意义。
数据控件 篇7
关键词:VS2005,C#,XML,TreeView
1 引言
TreeView控件是程序显示界面制作中最常用的控件之一,同样XML作为最流行的数据存储方式之一,在编程中的应用也日益广泛。如何将XML数据显示到TreeView控件中就成为在编程中经常遇到的问题。文中将介绍一种比较简单方法来解决这个问题。
TreeView控件的操作是基于TreeNode节点对象的,XML与之类似,只不过节点对象是XmlNode,所以把XmlNode节点对象转换成TreeNode节点对象即是解决问题的基础。在转换过程中采用递归算法来解决树结构的遍历问题。
TreeView控件可在节点前加CheckBox控件,但并不支持点击TreeNode节点文本时选中CheckBox,这就需要在程序中添加对mouseClick事件的响应。
在允许多选的情况下,获取所有被选中的项时也需要采用递归算法来遍历整个树结构。
2 程序实例
2.1 XML文件内容
2.2 读取XML数据及调用
2.3 绑定treeView
2.4 递归转换节点类型
2.5 点击TreeNode文本时选中CheckBox
2.6 获取所有被选中节点的ID
2.7 节点文本的修改
3 运行结果
如图1所示。
4 结语
通过程序实例介绍了XML数据绑定到TreeView控件的方法、鼠标单击事件及多选情况下被选中节点的获取方法。在实际应用中可能会遇到节点增加、删除等操作,有兴趣的读者可进一步研究。
数据控件 篇8
一个程序往往仅能对固定结构的若干数据表进行查询,然而,在工作过程中,一个单位会产生大量的业务数据,也会从上、下级和友邻单位接收部分数据,由于历史或其他客观原因,这些数据往往格式不同,并分别存放在不同的数据库系统或数据文件中,由于资金限制等原因,不可能为所有这些零散的数据开发相应的软件,以对这些数据进行查询利用,对中小单位来说尤其如此。各种数据库系统厂商虽然提供了数据的通用查询工具,但往往仅能查看自身格式的数据库表,而且表头显示的是物理字段名,不能满足中文环境的特别需求,而且数据的可读性差,并不能满足用户的查询使用需要。如果有一个通用的,能够适应不同的用户和数据库系统,数据库表变化不影响程序运行,能够体现中文环境特点的数据库查询程序,将在一定程度上满足用户复杂的数据查询需求,提高数据的利用效率和经济效益。cx Grid控件是Developer Express公司出品的众多优秀的第三方控件之一,它是一个功能强大、表现丰富、风格多样、方便易用的数据展示控件,是开发数据查询展示软件的得力工具。在此将探讨一种基于cxGrid控件的通用数据库查询程序(以下简称“查询程序”)的设计方法和程序实现。
2 设计指标与方法
查询程序必须体现“通用”这一主要特点,并满足适应性、应用性、中文环境特点、定制查询、分类汇总等设计指标,下面是指标描述和相应的设计实现方法:
(1)通用性要好。能够适应不同的业务领域的用户,不能仅针对某一种特定对象,能够适应目前各种主要的关系数据库、桌面数据库和常见格式的数据文件。方法:采用OLE DB数据库连接文件“*.Udl”和TADOConnection控件,它能够实现与OLE DB支持的各种数据库和数据文件的灵活连接,允许用户手工设置和测试数据库连接。
(2)适应性要强。能够适应业务不断变化的需要,数据表增加、减少和结构变化时,只要及时更新相关数据表的内容,不影响程序的主要功能。方法:设置表名称表和表字段表,用户可以根据需要自行维护,运行时表格的表头根据数据表结构动态生成,数据库表的变化不影响程序的正常使用,使程序具有高度的灵活性和适应性。
(3)要简单易用。通用程序面对的主要是非计算机专业用户,操作使用必须简单易用。方法:通过程序提供的[初始化功能创建表名称和表字段表,并自动提取和添加表名称和表字段信息,用户只须使用该程序配置好数据库连接并执行初始化即可查询自己的数据库。
(4)要体现中文环境特点。要能够满足中文环境的特别需求,表名字段名不管是中文还是英文字母,标名称和表头标题必须能显示为汉字,数据取自外键表代码的字段必须能显示代码的中文含义,使显示内容可读性好。方法:在表名称表中设置实际表名、显示表名和类别字段;在表字段表中设置字段中文名称字段,为每一个字段设置中文名,在表头自动产生时根据表字段表,提取并显示字段中文名;在表字段表中为每一个有外键的字段设置外键表名、外键字段名、外键含义字段名,当创建表头标列对象时,提取外键数据项;这是本程序涉及到的关键核心技术。用户只需在维护好表名称表和表字段表中的显示表名、字段中文名和外键信息,程序运行时就够很好地处理名称、代码的汉字化显示问题。
(5)要支持定制查询。用户的数据查询需求往往是不确定的,要满足这个特点,查询程序就必须提供定制查询功能。方法:利用cxGrid自带的过滤生成器,使用户可以根据需要设置查询和过滤条件。
(6)要能分类汇总。在用户按某一字段进行分类时,其他数值型字段的数值要能够自动汇总。方法:当生成表头时,如果字段类型为数字就添加一个分类汇总项和页脚合计项,充分发挥cxGrid的自动分类汇总功能。
3 程序设计与实现
3.1 实验环境
操作系统:Windows XP Professional pack 2。
开发工具:Delphi 7.0。
数据库:Access 2003;SQL Server;Oracle8.1.7。
OLE DB提供程序:Microsoft Jet 4.0 OLE DB Provider, Microsoft OLE DB Provider for SQL Server, Oracle Provider for OLE DB。
需安装的第三方控件:ExpressDBTree Suite 1.3.1, ExpressQuantumGrid Suite 5.0。
3.2 数据表设计
(1)表名称表
该表存放数据表名称信息,包括:实际表名、显示表名、类别、备注等字段。
(2)表字段表
该表存放数据表字段信息,包括:表名称、字段名称、字段中文名称、外键表、外键字段、外键含义字段、备注等字段。
上述两数据表在用户设置好数据库连接后,执行初始化功能时可自动创建。
3.3 程序设计与代码实现
通用数据库查询程序示例程序名称为TYCXXT.DPR,它包括数据模块(DdtaMod)、主窗体模块(Mian)、数据查询维护模块(SJCX)、表名称维护模块(CXWH)、表字段维护模块(ZD-WH)等5个程序单元,数据模块和主窗体模块须预先创建,其他模块都在程序运行过程中动态创建。其中,表名称维护模块用来维护需要表名称表,使用户可以添加、删除表名称记录,以及修改数据表的中文名称和分类信息;表字段维护模块用来维护表字段表,用户可以添加、删除表字段记录,以及修改字段的中文名称、外键表、外键字段和外键含义字段等信息;由于这两个模块技术实现简单,不再赘述,重点介绍数据模块、主窗体、数据查询3个模块的界面设计与关键程序代码实现。
3.3.1 数据模块(DataMod)
数据模块主要存放ADO数据库连接和各模块用到的所有数据集控件。该模块的主要控件包括:数据库连接控件My-Conn,其ConnectionString设置为:“FILE NAME=DBCONN.udl”,该连接指向程序所在目录的“dbdemos.mdb”数据库;AdoTable控件BMCB、BZDB分别指向标名称表和表字段表;公用AdoQuery控件数据集GQuery、GQuery1、GQuery2和GQuery3,所有的数据集的Connection属性均设置为“MyConn”。图1是数据模块设计时窗口,数据模块中没有任何时事件和过程,其代码从略。
3.3.2 主窗体(Main)模块
该模块是程序的主界面,表单上只有一个MainMenu1菜单控件,包括连接设置、初始化、表名维护、字段维护、数据查询和退出等菜单项,分别为各个相应模块和过程提供访问入口。图2是主程序模块的设计窗口。
主窗体模块的关键程序代码如下:
3.3.3 查询维护(SJCX)模块
数据查询维护模块提供当对数据库所有数据表的查询维护功能。该模块的主要控件包括:TdxDBTreeView树形控件TreeView1,显示待查询的数据表;TcxGrid表格cxGrid1,显示当前数据表内容;TcxDBNavigator导航条cxDBNavigator1,导航和操纵数据;TDataSource数据源DataSource1和TADOQuery查询数据集Query1分别为处理当前数据表的数据源和数据集。其中DataSource1的DataSet设置为Query1, Query1的Connection属性设置为MyConn, cxDBNavigator1和cxGrid1的绑定数据源为DataSource1。图3和图4分别为数据查询维护模块的设计窗口和运行效果图。
数据查询维护模块的关键程序代码如下:
4 结语
主要阐述了一种基于cxGrid控件的通用数据库查询维护程序的设计方法,并通过一个实例描述了具体程序设计和代码实现,例程在Delphi7.0环境和Developer Express相关控件环境下调试通过。经测试,本例程的可执行程序可以查询维护Access、SQL Server和Oracle数据库,达到了各项设计技术指标。普通用户可以用该程很方便地查询自己的数据库,程序员还可以根据需要在例程基础上,扩展数据上报与接收、数据备份与恢复、打印、数据访问控制等功能,开发出功能更全面的通用数据查询维护程序。
摘要:阐述基于cxGrid控件的通用数据库查询维护程序的设计方法和程序实现, 并通过一个实例给出了程序代码。
关键词:cxGrid控件,数据库,通用,查询维护程序
参考文献
[1]Delphi7.0用户手册.
[2]ExpressQuantumGrid Help.
[3]ExpressDBTree Help.
数据控件 篇9
关键词:数据绑定控件,典型用法
在ASP.NET中, GridView是使用的最多的数据绑定控件, 但是大部分只是用它来显示数据, 很少考虑到用户的操作习惯, 可操作性很差, 因此本文以访问常用示例数据库Northwind为例, 介绍在网站设计中GridView的典型用法, 使它具有良好的交互性。
1 通过PageIndexChanging事件实现对GridView控件的分页
1) 当GridView控件读取大量的数据时, 数据记录往往无法在当个页面中完全呈现, 这时需要对GridView控件进行分页, ASP.NET中的GridView有一个内置的分页功能, 可支持基本的分页, 用户可以对GridView进行默认分页或创建自定义的分页;
2) 创建一个网站, 默认主页为Default.aspx, 在Default.aspx文件中添加一个GridView控件, 并将AllowPaging属性设置为true;
3) 在Default.aspx.cs文件中引入命名空间System.Data.SqlClient;
在Page_Load事件中实现GridView显示数据, 在PageIndexChanging事件中实现分页功能, 代码如下:
2 在GridView控件中实现自动编号及定制GridView控件外观
1) 当页面比较多时, 往往需要在GridView中增加一列自动递增序号列, 用来标识每一行的序号。在步骤1的基础上继续完善GridView的功能。
选中GridView右上角的智能标记点击“添加新列”, 添加一个模板数据绑定列TemplateField, 并在ItemTemplate模板中添加一个Label控件用于显示编号序列。代码如下:
当鼠标悬停在某一行时, 效果如下图, 交互性更好。
参考文献
[1]孟庆昌.ASP.NET网站开发先锋.机械工业出版社, 2010, 2.
数据控件 篇10
理论上Silverlight与ASP.NET控件间是无法直接进行数据传递的, 但是由于ASP.NET中的隐藏域控件在被解析为Web页面时会被转化为HTML页面中的input元素, 而Silverlight控件则是可以从被嵌入的页面中的HTML页面元素读取数据的。由此可以想到是不是可以利用隐藏域控件作为过渡从而实现从ASP.NET页面到Silverlight空间的数据传递呢?
接下来用一个简单例子来验证一下上述想法, 该例子包含两个项目, 一个是ASP.NET页面项目, 一个是Silverlight控件项目。
2创建序列化对象
为了能将ASP.NET页面从数据库或Web服务中获取的数据保存在隐藏域控件中, 首先应该对数据进行序列化。所以假设在ASP.NET页面项目中从数据库或Web服务中获取了某公司今天全部的订单数据, 然后创件一个序列化对象, 利用该对象实现对订单数据的序列化。该类实现如下:
public class OrderAddress
{
[XmlAttribute]
public string Address {get; set;}
[XmlAttribute]
public string City { get; set;}
[XmlAttribute]
public string PinCode { get; set; }
}
[XmlRoot ("Order") ]
public class Order
{
[XmlElement]
public string CustomerName { get; set; }
[XmlElement]
public OrderAddress OrderAddresses { get; set; }
[XmlElement]
public int Id { get; set; }
public List
{
List
//在此处可以从数据库或Web服务获取数据
return orders;
}
//序列化Order数据
public string GetSerializedOrderData ()
{
//…
}
//反序列化Order数据
public List
xmlData)
{
//…
}
}
根据数据要求, 创建好Order类后, 还需要往类中添加几个序列化方法, 比如序列化订单数据 (GetSerializedOrderData) 和反序列化订单数据 (GetDesializedOrderObject) , 以方便调用序列化功能, 这些函数的具体实现这里不做过多讨论。
准备好序列化对象之后, 就可能通过ASP.NET页面的载入事件将序列化好的数据加载到隐藏域控件中去了, 具体实现如下:
protected void Page_Load (object sender, EventArgs e)
{
Order emp=new Order () ;
HiddenField1.Text = HttpUtility.HtmlEncode (emp.GetSerializedOrderData () ) ;
}
值得注意的是, 在把序列化后的对象传递到隐藏域中去之前, 一定要用HttpUtility.HtmlEncode函数对序列化好的数据进行编码, 因为在HTML页面中直接写入XML格式的序列化数据会导致“Server Error in '/' Application.”错误。
3实现ASP.NET页面向控件Silverlight控件传递数据
现在, Order对象的序列化数据已经被传递到ASP.NET页面中的隐藏域控件, 接下来就应该让Silverlight控件获取数据, 并将数据转换成其能够识别的格式。
首先, 应该在Silverlight控件项目中引入Order类, 这里推荐使用“添加为链接”的方式将Order类加入Silverlight控件项目。这样就可以在Silverlight控件项目中会添加一个对ASP.NET项目中Order.cs的引用, 避免不同项目中两份Order.cs原文件可能带来的代码不一致问题。
然后, 在Silverlight控件项目中打开MainPage.xaml, 在其中加入DataGrid和ListView以显示接收到的订单数据。
接下来就是编写Silverlight控件的代码从其宿主页面的隐藏域控件中获取预先存入的序列化对象数据, 具体实现如下:
//从宿主页面获取数据并解码为XML格式的序列化数据
var result=HttpUtility.
HtmlDecode (HtmlPage.Document.
GetElementById ("HiddenField1") .GetProperty ("value") .ToString () ) ;
Web.Order order = new Web.Order () ;
List
orderDataGrid.ItemsSource = orders;
这段代码应该放置在Silverlight控件的Load事件中, 代码先从宿主页面隐藏域控件对应的input页面元素中读取数据, 然后利用HttpUtility.HtmlDecode方法, 把数据解码为XML格式的序列化数据, 这样我们就从ASP.NET页面中获到了数列化数据。接下来通过GetDesializedOrderObject方法就可以将序列化数据发序列化为List
4结束语
上述例子, 实际上就利用序列化对象和隐藏域控件让Silverlight控件获得了从ASP.NET宿主页面中传递来的数据。通过这种方式, 实际上避免了从Silverlight控件直接访问数据库, Silverlight控件仅仅作为一个独立的组建被嵌入在页面中。
最后值得注意的是, 上述方法虽然可以完美地实现大量数据从ASP.NET页面到Silverlight控件的传递, 但由于使用了隐藏域控件将数据存放在页面中作为过渡, 实际上影响了页面的性能。所以只有在项目总体架构限制了不允许Silverlight控件直接访问数据库的前提下, 才应该考虑使用上述方式实现数据传递。
参考文献
[1]吴娟.Silverlight技术初体验[J].黑龙江科技信息, 2009 (3) .
数据控件 篇11
关键词:Active X控件;WEB页面
中图分类号:TP393.03文献标识码:A文章编号:1007-9599 (2011) 06-0000-01
Active X Control Application in the WEB Page
Tang Ying
(Huizhou Agricultural School,Huizhou516023,China)
Abstract:On the Internet,Active X plug-in software features are:
general software requires users to download and then run a separate installation,and Active X plug-in is when the user browses to a specific Web page,IE browser will automatically download and prompt the user to install.Active X plug-in installed on a premise that must be the user's consent and confirmation.Such as VisualBasic,VisualC++,Internet,Explo-
rer and so on.Therefore,Active X controls and containers must support certain interface protocol.Active X should include properties,events,and methods of these special mechanisms,it is also creating the core of Active X controls.Because ActiveX controls can be reused,combined with the popularity of Internet,Active X control has been greatly developed,at present,can be obtained from the Internet,a lot of it is open to the external environment,can be a variety of programming environments.
Keywords:Active X control;WEB page
Active X是微软公司开发的一套叫COM的窗口“控制”技术(Component Object Model)。该技术用来拓宽视窗及Explorer浏览器的视频、声频回放和Flash电影的播放。针对各种功能需要,Active X用其一种控件来响应。当该控件对某种回放功能响应时,它自动下载并安装自身,然后运作。Active X控制的优点在于尽管通常情况下它们都被使用在Explorer浏览器中,但一旦它们加载后,任何支持COM协议的应用程序均可使用。在Office97/2000中,Microsoft已将Active X控件集成到World、Excel等软件中,使得这些著名的工具软件又上了一个新的台阶。Active X控件,而且品种繁多,所完成的任务几乎无所不包。本文对Active X介绍、Active X控件在WEB上的调用、Active X控件的缺点及安全性进行了详细的阐述和分析。
一、Active X控件介绍
Active X一个典型的空间包括设计时和运行时的用户界面,唯一的IDispatch接口定义控件的方法和属性,唯一的IConnectionPoint接口用于控件可引发的事件。除此之外,一个控件还可以包含对其整个生命周期的-执性支持,以及对剪贴,拖放等用户界面特性的支持。从结构上看,一个控件有大量必须支持的COM接口,以利用这些特性。Active X控件永远是放在其所放置的容器内运行的,空间的扩展名为.OCX,但从运行模块的角度看,它不过是一个标准的WINDOWS DLL文件。ActiveX控件是基于组件对象模型(COM)的可重用软件组件,它支持广泛的OLE功能并可自定义满足多软件的需要。ActiveX控件旨在用于普通ActiveX控件容器和Internet上的万维网页属性和事件是容器内应用程序与控件通讯的方式,容器和控件之间的通信使用事件。对于ActiveX控件,事件是在容器端时显现的IDispatch接口。事件的底层机制称连接点。一个连接点就是与容器通讯所需接口的类型描述,连接点不只限于IDispatch接口,它也可用任何COM实现,控件只不过第一个利用他们.ACTIVEX是一个独立的对象,可以激起和响应事件,处理消息,具有唯一的属性,并有多线程能力,并支持其余容器之间的双向通信和消息传递.ACTIVE X控件最奇妙的地方在于它的可编程性和可重复使用性.在Internet上,有超过1000个ActiveX控件供用户下载使用。
二、Active X控件在WEB页面上的调用
在WEB页面中使用ActiveX控件包含三个基本操作:将控件放入WEB中;将该控件下载给用户;在用户机器上安装该控件。如果只是针对IE用户,在WEB中插入ActiveX控件就比较简单;如果同时兼顾IE和Netscape用户,则要做更多工作。大家知道,WEB文件由文本和各种标志(tags)组成,ActiveX控件对于IE在WEB中的标志是<OBJECT>,该标记有几个重要的参数特性,它们是:ID:为控件提供一个标识名称,为WEB代码提供一种访问该控件的方式;CLASSID:是该控件唯一的UUID,告诉IE装入哪个对象。如果使用已经开发好的控件,它的CLASSID可以通过调用Win95或NT下的应用Regedit来查找。从开始菜单中运行该程序,展开HKEY_CLASSES_ROOT项,可以看到按字母顺序排列的注册表,找到需要使用的控件名,例如WClnt,展开时可看到一个CLSID文件夹,里面就是该控件的CLASSID。
三、Active X控件的缺点
Active X的作用之一就是可以用来增强应用程序(包括Web应用程序如ASP等)的功能或者说拓展应用程序的处理能力。比如说一些ASP不好实现或难以实现的功能,如访问列举用户的个人计算机文件这种功能在ASP中不好实现,但是利用ActiveX控件就可以轻易实现这种功能。从而使得像一些Asp等Web应用程序的功能增强。不过ActiveX控件的缺点在于,在Windows操作系统中使用前。必须先对控件进行注册,否则是无法使用的。所以一般开发通用类型的Asp程序,像动网论坛这样的程序。个人不推荐用自制的ActiveX控件,因为ActiveX控件是需要到服务器计算机上注册的。而程序用户有可能是在网上申请的个人主页或网页空间,服务器在远程异地。所以说不可能到服务器上注册ActiveX控件,因此不能使用。
四、结语
总之,随着计算机科学与技术的快速发展,在新时期,会有越来越多的功能强大的软件被用于WEB网页中。在新形势下,软件开发人员要坚持科技创新,实现新型软件产品的技术开发,为软件开发商以及相关用户提供更好的技术保障,提高工作效率,为社会发展做出贡献。
参考文献:
[1]谢歆.用VB开发动态模糊规则库的Active控件[J].微计算机应用,2003
数据控件 篇12
通常在Web应用程序中, 会接受用户输入的大量的数据。在大量的输入数据中, 可能会有很多无效数据。一般来说, 使用者输入数据的时候, 一定要执行数据验证的工作。数据验证是一种限制使用者输入的限制, 可以确定使用者输入的数据是正确的, 或是强迫使用者一定要输入数据。先执行数据验证比输入错误的数据后, 再让数据库响应一个错误信息有效率;也可以确保使用者输入的数据是一个有效值, 这些功能, 可以由数据验证控件来完成。
2 验证控件的用法
为用户输入创建ASP.NET网页的一个重要目的就是检查用户输入的信息是否有效。ASP.NET提供了一组验证控件, 用于提供一种易用但功能强大的检错方式, 并在必要时向用户显示错误信息。ASP.NET共有六种验证控件, 分别如下:Required Field Validator、Compare Validator、Range Validator、Regular Expression Validator、Custom Validator、Validation Summary。数据验证控件都使用Control To Validate属性关联要被验证的控件;Error Message属性是验证不通过时显示的错误信息;Display:错误信息的显示方式;Static表示控件的错误信息在页面中占有肯定位置;Dymatic表示控件错误信息出现时才占用页面控件;None表示错误出现时不显示, 但是可以在Validator Summary中显示;占位符:表示Display为Static时, 错误信息占有“占位符”那么大的页面空间。
2.1 Required Field Validator的使用
必须字段验证控件检查用户是否输入, 语法格式如下:
2.2 Compare Validator的使用
比较验证控件使用比较运算符验证用户的输入是否符合要求, 可以比较的值有常量和其他控件的属性。比较控件语法如下:
在上面的代码中需要说明的如下:
Type表示要比较值的数据类型;
Operator表示比较操作;
其他属性和Required Field Validator相同;
需要特别注意的是Control To Validate和Control To Compare是有区别的, 如果Operator为Greater Than, 那么, 必须Control To Compare大于Control To Validate才是合法的。
2.3 Range Validator控件
范围验证控件检查用户输入是否在某一指定范围, 范围用Maximum Value (最大) 和Minimun Vlaue (最小) 来确定, 语法格式如下:
在格式代码中:用type来定义控件输入值的类型。
2.4 Regular Expression Validator控件
正则表达式控件检查用户输入是否符合某一指定的正则表达式要求, 可以自己构造验证方式, 以下是语法格式:
在Validation Expression中, 不同的字符表示不同的含义。在使用过程中, 属性窗口中提供的表达式会更方便快捷。例如:身份证, 邮政编码, Email格式等等都可以从中进行选择。
2.5 Custom Validator控件
自定义验证控件检查用户输入是否符合开发者指定的验证逻辑规则, 该控件用自定义的函数界定验证方式, 语法格式如下:
在使用该控件时用户必须定义一个函数来验证输入。
2.6 Validation Summary控件
验证总结控件总结验证结果, 为用户提供将窗体发送到服务器时所出现的验证错误的列表。该控件收集本页的所有验证错误信息, 并可以将它们组织以后再显示出来。其语法格式如下:
在以上代码中, Head Text相当于表的Head Text, Display Mode表示错误信息显示方式:List相当于HTML中的
;Bullet List相当于HTML中的
- ;Single Paragraph表示错误信息之间不作如何分割。
3 验证控件的综合应用
通常情况下, 验证控件都是结合在一起使用的, 例如E-mail既不能为空, 又要满足一定的规则。以下是一个使用上述所有验证控件的用户注册的页面效果。当全部验证控件通过验证, 表明该页面有效。
4 结论
在实际的应用中, 我们需要根据实际的情况进行选择使用, 有时也可以将这几种方法结合起来, 以简单有效的保证数据的有效性及安全性。
摘要:本文针对ASP.NET中几种常用的数据验证控件的使用方法进行比较和总结, 并结合实例介绍了在ASP.NET中页面中几种据验证控件的组合应用使用。
关键词:ASP.NET,验证控件,有效性
参考文献
[1]徐连霞, 傅伟.ASP.NET数据验证机制研究[J].江西蓝天学院学报, 2009, 4 (4) :25-27.
[2]魏泽臻.ASP.NET中的数据验证[J].福建电脑, 2010, 10.
[3]徐谡, 徐立.ASP.NET应用与开发案例教程[M].北京:清华大学出版社, 2005.
[4]龚小北.使用ASP.NET定制数据验证控件[J].计算机世界, 2002, 9.