当前位置: 首页 > news >正文

ASP.NET WEB服务器控件的使用

内容:
web服务器控件概述
输入验证控件的使用
服务器控件中的客户端功能
IE  Web Control的使用
服务器日期控件的编写

导出类
大多数内置的ASP.NET服务器控件都会发送一个HTML元素。例如,TextBox Web控件发送一个<inpu>元素,其类型属性设置为text,DataGrid Web控件发送一个<table>元素,为每条要显示的记录发送<tr>元素,为每个字段发送<td>元素。
但是,不是所有的控件都需要发送HTML元素。例如,Repeater不将其输出放在HTML元素中。
那些显示为HTML元素的控件,如TextBox、Button、DataGrid等等,是从System.Web.UI.WebControls.WebControl类导出的,而那些不产生HTML元素的控件,如Literal、Reapter等,是从System.Web.UI.Control类导出的。

Web控件的特点
丰富而一致的对象模型:WebControl实现了对所有控件通用的大量属性,这些属性包括ForeColor、BackColor、Font、Enabled等
对浏览器的自动检测:Web控件能够自动检测客户机浏览器的功能,并相应地调整它们所提交的HTML,从而充分发挥浏览器的功能。
数据绑定:在Web窗体页中,可以对数据的任何属性进行数据绑定。

HTML控件,WEB控件对比
控件抽象
HTML控件不具备任何抽象能力。每种控件与HTML标记都是一一对应的。
Web控件创建了更高级别的抽象,它们没有任何对应的HTML标记(如Calander和DataGrid)。因为它们不直接映射为HTML标记,所以Web控件还能在适当的场合起到合并功能的作用(例如用一个TextBox控件来代替多个标记)。这种抽象为使用第三方提供的种类丰富的控件工具箱打开了方便之门。
对象模型
对象模型HTML控件提供了以HTML为中心的对象模型。每种控件都包括一个属性集,可以使用该属性集来控制标记的属性。这个属性集使用了字符串名/值对,并且不是强类型的。
Web控件提供了基于表单的、类似于Visual Basic的编程模式。它们也提供了属性集,但它们的主要目标在于提供一种格式丰富、类型安全且具有一致性的对象模型。每种Web控件都包含一组标准的属性,如ForeColor、BackColor、Font等,Web控件能自动对它们生成的结果进行调整,以确保输出结果在高版本浏览器和低版本浏览器上的工作同样出色。Web控件还能够针对不同的浏览器提供不同的行为,从而充分发挥浏览器的潜力。例如:Validation控件还可以通过客户端的脚本来创建用于高级浏览器的具有高度交互性的页面。
对生成的HTML的控制
HTML控件允许您完全控制所显示的内容以及发送到客户机浏览器的内容。
Web控件提供了更为丰富的对象模型,以及适应多种浏览器的能力。因而,它们没有提供对输出结果的相同程度的控制能力。

输入验证控件
手写代码控制表单验证的弊病
烦琐 不安全

下面是微软的工作人员,给出的商业网站用手写代码控制表单验证的弊病:
尽管错误信息或图标经常与输入元素相邻,但是它们几乎总是位于表的不同单元格中
页面中经常会有一个区域来汇总所有的错误
许多站点包含客户端脚本,以便提供更快捷的反馈,同时防止白白地在与服务器之间往返。
许多包含客户端脚本的站点在出现错误时会显示信息框
不仅会验证文本输入,还会验证下拉列表和单选按钮
如果某个字段为空,站点通常会显示与该条目无效时不同的信息或图标
许多有效性检查可以很好地代替常用的表达式
验证通常是基于两个输入之间的比较结果
90%或90%以上的验证任务是一些常见的操作,例如检查姓名和邮政编码,大多数站点似乎仍在重复进行这些工作
因为站点之间的差别通常太大,无法获得一种完美的解决方案来处理每个站点的所有验证任务

ASP.NET解决了ASP的难题,可以验证表单填写的正确性!

ASP.NET进行表单验证的过程:
aspx文件被编译,运行
用户输入数据
触发Page_Load事件
更改Web控件属性,提示哪里没有输入
将页面用HTML重写输出给用户
再次提醒用户输入

验证控件的功能:
确保所需字段已经填写
确保用户输入的数据未超出给定的范围
确保用户输入的数据符合特定的模式
根据给定的条件比较两个控件,或把控件的值与指定的值相比较
确保提交页面之前页面上的所有控件都是有效的

验证控件介绍:
RequiredFieldValidator 检查用户是否输入或选择了任何内容
RegularExpressionValidator 根据规则表达式验证用户输入。该过程允许进行许多种类的检查,可以用于邮政编码和电话号码的检查
CompareValidator 将输入控件与一个固定值或另一个输入控件进行比较。例如,它可以用在口令验证字段中。也可以用来比较输入的日期和数字
RangeValidate 与CompareValidator非常类似,只是它用来检查输入是否在两个值或其他输入控件的值之间
CustomValidate 允许用户编写自己的代码加入到验证框架中

验证控件的共享成员:
ControlToValidate 设置或获取一个string 类型的值,此string类型的值指定要验证的输入控件
Display 设置或获取错误信息如何显示的值
EnableClientScript 设置或获取是否执行客户端验证的布尔值
Enabled 确定是否使用控件
ErrorMessage string值,表示用户输入无效时要显示的错误信息
ForeColor 错误信息的显示颜色
IsValid 表示需要验证的控件是否通过验证
Validate 此方法导致它调用的控件执行验证,并用结果更新IsValid属性

正则表达式验证非常有用,功能强大


从ASP.NET服务器控件插入插入客户端脚本
尽管从技术角度讲,ASP.NET服务器控件的所有功能都可以在服务器端执行,但通常情况下通过添加客户端脚本可以大大增强服务器控件的可用性。例如,ASP.NET验证web控件可以在服务器端执行所有的验证检查,但是,对于高版本浏览器,验证WEB控件也会发送客户端脚本,以在客户端进行验证。

ASP.NET服务器控件可以发送两种客户端脚本:
客户端脚本块:客户端脚本块通常是用Javascript编写的,其中通常包含在发生特定的客户端事件时执行的函数
客户端HTML属性:客户端HTML属性提供将客户端事件与客户端脚本联系在一起的方法

ASP.NET服务器控件中发送客户端脚本块
使用System.Web.UI.Page类包含的两个方法可以将客户端脚本代码发送到由ASP.NET WEB页面提供的HTML中:
RegisterStartupScript(key,script):在web窗体的结尾处(在</form>标识之前)发送脚本块。
RegisterClientScriptBlock(key,script):在web窗体的开始处(紧接着<form runat="server">标识之后)发送脚本块

ASP.NET服务器控件中发送客户端脚本块
带有指定关键字的脚本块是否已添加到页面中
IsStartupScriptRegistered(key)
IsClientScriptBlockRegistered(key)
使用IsStartupScript()和IsClientScriptBlock()方法。这样一来,验证web控件就不会先花时间构建要发送的客户端代码,而是先检查是否已经存在使用关键字ValidateIncludeScript注册的脚本。如果存在,控件就会放弃构建客户端脚本块,因为脚本块已经由页面上的其他控件构建了

发送ASP.NET服务器web控件的HTML属性
这种方法通常只适用于从System.Web.UI.WebControls.WebControl类导出的服务器控件,因为从这个类导出的控件会发送某些HTML元素。
WebControl类包含一个将HTML元素属性添加到由web控件发出的HTML元素的方法。该方法称为AddAttributeToRender(),它只有一个输入参数,即HtmlTextWriter的实例。
要向WEB控件添加HMTL属性,可以使用HtmlTextWriter的两个方法之一:
AddAttribute():用于将title、class、style和onclick等HTML属性添加到HTML元素
AddStyleAttribute():用于将样式设置添加到HTML元素,如background-color,color和font-size等
 
IE web control
2002年,Microsoft发布了四种asp.net web控件,用于为使用IE的web访问者提供更好的体验。这些web控件称为IE WEB控件,包含以下四种控件:
MultiPage控件
TabStrip web控件
Toolbar web控件
TreeView web控件

控件的安装
下载 http://asp.net/iewebcontrols/download.aspx
下载并安装完IE web控件后,将创建一个新目录(默认为c:\program files\web controls\,也可以在安装过程中配置此目录
找到这个新目录,然后点击build.bat文件,build子目录将包含程序集文件System.Web.UI.WebControls.dll和子目录Runtime
在web根目录下创建目录/webctrl_client/1_0,把Runtime目录下的文件拷贝过去
把.dll文件添加到工具箱

TreeView IE Web控件入门
当TreeView IE Web控件在访问者浏览器中显示时,会显示一棵树,此树与windows资源管理器中的树非常相似,不同的是,treeview可以由任意多个TreeNode对象组成。每个TreeNode对象都可以关联文本和图像。
TreeNodeType定义一个节点类型,适用于TreeView中的一个或一组节点
另外,TreeNode还可以显示为超链接并与某个URL相关联,每个TreeNode还可以包括任意多个TreeNode对象。包含TreeNode及其子节点的层次结构构成了TreeView控件所呈现的树结构

转载于:https://www.cnblogs.com/miniflyfish/archive/2006/03/22/356118.html

相关文章:

  • 体验TFS Build,要想实现每日Build,这个是不错的工具,
  • 一连几天加班,很辛苦.
  • 如何把javascript的值赋给.net的服务器控件
  • 新浪网:《2006中国Web2.0值得关注的百家企业名单(表)》
  • 减少滚动条滚动次数,迅速启动电脑
  • Automation服务器不能创建对象
  • 为我喜欢的德意志战车
  • 在工作流基础上的解决方案清单
  • Flash与后台数据交互方法总结
  • 堆和栈的区别[导入]
  • [转] 应聘Java笔试时可能出现问题及其答案(第十部分)
  • 关于SET NOCOUNT ON
  • 转Andy的: 广东人招谁惹谁了?
  • vb调用Crystal Report
  • 冯小刚贺岁片十大经典台词
  • $translatePartialLoader加载失败及解决方式
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Druid 在有赞的实践
  • extract-text-webpack-plugin用法
  • Javascripit类型转换比较那点事儿,双等号(==)
  • js
  • JS题目及答案整理
  • k8s 面向应用开发者的基础命令
  • LeetCode29.两数相除 JavaScript
  • PHP 小技巧
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • vuex 学习笔记 01
  • Vue全家桶实现一个Web App
  • 动态魔术使用DBMS_SQL
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 基于游标的分页接口实现
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 聊聊redis的数据结构的应用
  • 如何编写一个可升级的智能合约
  • 如何解决微信端直接跳WAP端
  • 智能合约Solidity教程-事件和日志(一)
  • Spring第一个helloWorld
  • ​secrets --- 生成管理密码的安全随机数​
  • ​第20课 在Android Native开发中加入新的C++类
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (C语言)二分查找 超详细
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三)终结任务
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (生成器)yield与(迭代器)generator
  • (五)Python 垃圾回收机制