站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ASP.NET控件
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
==ASP.NET控件类型== 控件时插件是构建图像用户界面([[GUI]])的模块,你熟悉的的控件包括:按钮、复选框、列表框。控件为用户提供了显示偏好,输入数据或者做出选择的途径。[[WEB]]控件包括四类类型: #HTML控件:最初的空间可用于任何[[HTML]]页面中,就如同他们工作在其他页面中一样,也都能工作在ASP.NET中。 #HTML服务器控件:他们是基于最初HTML控件,但是,功能有所增强,可以在[[服务器]]端执行处理。 #ASP.NET服务器控件:比较丰富、可扩展的服务器控件集成在ASP.NET编程模型中,它们在客户端呈现为HTML,并提供与HTML服务器控件相同,甚至更多的功能,主要包括以下控件: ##[[验证控件]]:这类控件提供了全面的内建于窗体的验证能力。 ##[[数据源控件]]:针对各种数据源实现数据绑定功能,包括[[SQL]] SERVER和 [[Access]],以及其他关系数据库、[[XML]]文件和代码中实现的类。 ##[[数据库视图控件]]:这类控件为各种列表和表格,它们可以绑定到数据源以显示和编辑数据。 ##个性控件:允许用户个性化的展示自己的站点,包括重新调整[[网页]]本身等。 ##[[登录控件]]和[[安全控件]]:这类控件实现站点中的普通登录功能,并维护用户的密码。 ##[[母版页]]:帮你创建具有一致布局和用户界面的WEB站点。 ##富控件:实现诸如菜单、树形视图和向导这样的特殊功能。 #用户控件和自定义控件:由开发人员创建的控件。 ==ASP.NET事件== ASP.NET有数千个事件,应用程序有事件,每一个会话也有事件,并且页面和许多服务器控件都会触发事件。所有的ASP.NET事件都在服务器端处理,有些时间立刻发送到服务器,另外一些时间则被储存,直到下次页面回传到服务器。 事件是在服务器端处理的,ASP.NET事件与传统客户端应用程序中的事件稍有不同,在传统客户端的应用程序中,事件本身和事件处理程序都在客户端,在ASP.NET应用程序中,事件通常都在客户端触发,在服务器端处理。 考虑一个包含按钮控件的ASP.NET页面,当单击该按钮时,触发了一个Click事件,不同于HTML按钮控件,ASP.NET的按钮有一个runat=server属性,它为所有HTML按钮标准添加服务器端处理属性,当触发Click事件时,[[浏览器]]则发送页面到服务器,以便处理客户端事件,与此同时,一个事件消息传送到服务器,服务器端确定是否与Click事件关联的事件处理程序,如有,则在服务器端执行该时间处理程序。 事件消息通过[[HTTP]] POST方式发送到服务器,ASP.NET将自动处理所有捕获事件的基础结构,将它传送到服务器,并处理时间,作为程序员,你所要做的就是创建事件处理程序。许多时间,如MouseOver,不会进行服务器端事件处理,因为那样做会降低性能,由于所有服务器处理都需要传回,因此,不能要求每次发生MouseOver时都回传到页面,如果一定要处理这些事件,那么,只能在客户端处理,这超出了ASP.NET的范围。 ===事件参数=== 事件依靠委托实现,委托时一个对象,它封装了对方法的描述,即处理事件所指定的任务。ASP事件处理程序有两个参数,并且返回空值,第一个参数触发事件的对象,第二个参数称为事件参数,它包括事件消息的细节,如果有的话,对于多数事件,事件参数是EventArgs类型,它没有任何属性,因此,事件的通用原型为: private void EventName(Object sender, EventArgs e) 对于某些控件,事件参数可以从EventArgs类派生,并显示该事件类型的属性细节。 ===应用程序事件与会话事件=== ASP.NET支持应用程序事件和会话事件,这二者为传统ASP程序员所熟知,当应用程序启动时,将触发Application_Start事件,这时,可以初始化整个应用程序中需要使用的各种资源。当应用程序停止时,将触发Application——End事件,这时,关闭资源,同时执行任何其他必要的日常管理,垃圾回收机制将自动释放内存,然而,如果分配了托管的资源,那么必须手动删除。 会话事件也是如此,当用户第一次请求应用程序的页面时,会话开始,当应用程序关闭会话或会话超时时,会话结束,当会话开始时,触发 Session_Start事件,这时可以初始化生命周期中使用的资源。 ===页面和控件事件=== 页面和控件都包含事件,它们继承自Control类,所有这些事件都传递没有属性的EventArgs类型的事件参数,下表是大多数公共事件: {| border="1" style="width:500px;height:20px" |- | <b>事件名称</b> || <b>说明</b> |- | DataBinding||当控件绑定到数据源时发生 |- | Disposed||当控件从内存中释放时发生 |- | Error||只有在页面中,当抛出未处理的异常时发生 |- | Init||当控件初始化时发生 |- | Load||当控件加载到页面对象时发生 |- | PreRender||当控件准备做输出时发生 |- | Unload||当控件从内存中卸载时发生 |} ===回传事件 VS 非回传事件=== 回传事件促使表单立刻回传到服务器,这包括单击类型的事件,与之相对的是,某些事件被认为是非回传的,因为,事件并不立刻回传到服务器,这些事件有控件捕获,直到再次发生回传,设置非回传事件控件的AutoPostBack属性为true,则可以强制使它们采用回传方式。 ==ASP.NET服务器控件== 在ASP.NET中,最为重要的是ASP.NET[[服务器]]控件,服务器空间包括方法已经与之关联的事件处理程序,并且这些代码都在服务器端执行,如果控件包括可视化组成部分,那么ASP.NET将在检测目标浏览器接受能力的情况下,为浏览器呈现传统的[[HTML]]。 ASP.NET服务器控件提供统一的编程模型,例如,在HTML中,input标签可用于按钮、单行文本、复选框、隐藏域和密码,二多行文本域,则必须使用<textarea>标签,使用ASP.NET服务器控件时,每种不同的功能类型将对应一种特定空间。 ASP.NET服务器控件包含了HTML控件可以提供的所有功能,甚至更多,其中包括基本控件,例如:按钮、文本标签、复选框、表格,高级数据控件、验证控件、安全和登录控件以及一些富控件。 下面列举了位于内容文件窗体中,实现ASP.NET服务器控件的语法: <PRE><asp:controlType id="ControlID" runat="server" thisProperty="this value" thatProperty="that value"/> </PRE> 控件插件总是以asp:开头,这就是标记前缀。controlType是控件的类型或类,你可以利用id属性,以编程方式引用空间实例,runat属性告知服务器,该控件在服务器端运行。 你可以再尖括号中声明其它属性,例如:为TextBox声明Text和Width属性,如下所示: <pre><asp:TextBox ID="txtBookName" runat="server" Width="250px" Text="Enter a book name."/> </pre> 虽然ASP.NET可以允许属性值周围不设置引号,但是,ASP.NET服务器控件必须使用良好的[[XHTML]]语法,需要明确的是,正如上文所示,尖括号必须明确关闭自身或者具有关闭元素,所以,上面的TextBox也可以书写为: <pre> <asp:TextBox ID="textBookName" rant="server" Width="250px" Text="Enter a book name."></asp:TextBox> </pre> 另外,许多ASP.NET服务器空间可以在打开和关闭标签之间使用内部HTML,例如,在TextBox控件中,可将Text属性指定为内部HTML,而不是将其设置在打开标签的属性中,上面的控件可以等价的写为: <pre> <asp:TextBox ID="textBookName" runat="server" Width="250px">Enter a book name.</asp:TextBox> </pre> ==HTML服务器控件== 服务器不会处理普通的HTML控件,例如<nowiki><h1>、<a>和<input></nowiki>,它们将直接被发送到客户端,有浏览器进行显示,可以为服务器提供标准的HTML控件,将他们转化为HTML服务器控件,使得他们能在服务器端处理。将HTML控件转换为HTML服务器控件,只需要简单的添加runat="server"属性,另外可能你还会添加id属性,这样可以通过编程方式访问和控制控件,例如,下面从一个简单的输入控件开始: <input type="text" size="40"> 你可以添加id和runat属性,将它转换为HTML服务器控件,如下所示: <input type="text" id="BookTitle" size="40" runat="server"> 基于以下两个主要原因,可选择使用HTML服务器控件,而不是ASP.NET服务器控件: '''转换现有的HTML页''' 为了在ASP.NET下运行转换的现有的HTML页面,你需要将文件的扩展名修改为.aspx,然而,HTML控件只能运行在客户端,而不是服务器端,为了获得如自动维护状态等服务器端处理的优势,必须为控件添加runat属性。 '''使用HTML表格实现页面布局''' 服务器端控件消耗服务器资源,通常,页面使用静态表格实现布局,触发要引用一个或多个表格元素,否则,无须进行服务器端处理。任何HTML控件加上runat=“server”属性,都可以转换为服务器端处理,所有容器控件,都允许通过编程方式访问控件内部的HTML。 ==客户端处理== ASP.NET的核心是服务器端处理,然而,这种方式存在一些缺点,主要问题是:任何处理开始之前,都必须回传到服务器,甚至对于通过本地高速网络连接到服务器的[[Internet]]应用程序,也是如此,这将常常给用户带来显而易见的,无法接受的延迟体验,对于那些经过高速宽带连接的Internet应用程序而言,这种延迟似乎变得更加漫长。 客户端处理可为用户行为提供及时的响应,因此能够显著改善用户体验,它们可以使用诸如[[JavaScript]]或者[[VB]]Script这样的脚步语言实现,某些ASP.NET服务器控件使用客户端脚本,来提供用户行为响应,而不需要回传到服务器。 从ASP.NET服务器控件调用客户端代码是可能的,另外,ASP.NET服务器控件中的Button控件包含一个OnClientClick属性,该属性允许你指定客户端脚本,并且当按钮被单击是执行脚本,常规的HTML控件和HTML服务器控件包含许多时间,当它们被引发时,则可执行脚本,脚本包含在内容文件的脚本块,或者包含在控件声明的属性内。 [[CATEGORY:ASP.NET控件|K]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)