什么是ASP.NET中的控件
ASPNET Web 服务器控件是 ASPNET 网页上的对象,当请求网页时,这些对象将运行并向浏览器呈现标记。 许多 Web 服务器控件与常见的 HTML 元素(如按钮和文本框)类似。 其他控件具有复杂行为,如日历控件和管理数据连接的控件。
一般分为三大类:
1 ASPNET 用户控件
除在 ASPNET 网页中使用 Web 服务器控件外,您还可以使用用于创建 ASPNET 网页的相同技术创建可重复使用的自定义控件。 这些控件称作用户控件。
用户控件是一种复合控件,工作原理非常类似于 ASPNET 网页 - 您可以向用户控件添加现有的 Web 服务器控件和标记,并定义控件的属性和方法。 然后可以将控件嵌入 ASPNET 网页中充当一个单元。
2 ASPNET Web 服务器控件
ASPNET Web 服务器控件是 ASPNET 网页上的对象,这些对象在请求网页时运行并向浏览器呈现标记。 许多 Web 服务器控件类似于常见的 HTML 元素(如按钮和文本框)。 其他控件具有复杂行为,如日历控件以及可用于连接数据源并显示数据的控件。
ASPNET 还提供支持 AJAX 的服务器控件。 这些控件由服务器和客户端代码组成,这些代码集成在一起可生成丰富的客户端行为。 当您将 AJAX 控件添加到 ASPNET 网页上时,该页会自动将支持的客户端脚本发送到浏览器以获取 AJAX 功能。 您也可以提供其他的客户端代码来自定义控件的功能,但这不是必需的。
3 ASPNET Web 部件控件
ASPNET Web 部件控件是一组集成控件,用于创建这样的网站:最终用户可以在浏览器中直接修改网页的内容、外观和行为。 本节中的主题提供有关 Web 部件的定义、工作原理以及如何使用 Web 部件创建用户可自定义的 ASPNET 网页的信息。
首先要明白的是,当你按了类似Button按钮,将页面重新发给服务器后,服务器处理你的页面的过程是:它会重新初始化你第一次请求的那个页面,就是说尽管你第一次请求页面后对这个页面做了许多其他的操作,比如说该页面有让用户随意转换文章字体的功能,你按了个标签使文章字体改变了,之后又有操作按了Button按钮将页面回发给服务器,让它处理你的Button事件,此时服务器重新初始化你的那个页面,该页面只是你第一次请求时的状态(即未改变文章字体的状态),但是为何服务器处理了你的Button事件,将网页回发给你后,文章的字体的确还是你之前自定义的字体呢?不是初始化页面的时候只是回到你第一次请求的状态吗?这就是viewstate的功能。在服务器初始化页面后,它会读取隐藏在你回发的页面中的viewstate,从中读取相应信息,在服务器端将文章字体变为你当初自定义的字体。 你的例子中,当在TextBox中输入文字后,传给服务器,服务器当然还能获得你的输入,唯一不同的是,如果你禁用了视图状态,那么当页面再次发给你的时候,你的TextBox就是空的了。而若没有禁用,当页面再次回发给你的时候,TextBox中仍然保留你上次的输入值。
NET的核心组件以及NET对开发人员的重要意义
NET的核心组件 :
· 一组用于创建互联网操作系统的构建块,其中包括PassportNET(用于用户认证)以及用于文件存储的服务、用户首选项管理、日历管理以及众多的其它任务
· 构建和管理新一代服务的基本结构和工具,包括Visual StudioNET、NET企业服务器、NET框架和WindowsNET
· 能够启用新型智能互联网设备的NET设备软件
NET对IT专业人员的重要意义
目前,IT专业人员能够利用与构建NET平台相同的技术。
NET Enterprise Servers和Windows® 2000操作系统,为创建具有高度可管理性的、能迅速投入市场的应用程序提供了坚实基础。它们利用的是可扩展标记语言(XML),因此随着Web体系结构的革新,在此平台上创建的程序依然很有价值。
NET平台的核心是,采用有效的、分门别类的方式来构建应用程序,达到其前所未有的规模。该平台上的Web服务模型指的是:企业应用程序的中心业务要素通常由本地管理,而支持它们的服务(如用户认证、文件存储、用户首选项管理、日历、邮件等等)却无须本地管理,可以被无缝订购。为了存储用户文件和邮件,IT专业人员往往在服务器上安装新的独立磁盘冗余阵列(RAID阵列),而有了NET,他们在这一方面将会花费较少的精力,而更多地致力于怎样为公司增加效益。
该Web服务模型还将动态配置新软件的发布和更新。用户将以极其紧密的连接方式工作,因此更易于管理。而简化的管理又可使IT专业人员更能适应变幻莫测的业务需求。
开发应用程序的NET Web服务模型将为企业应用程序的创建开辟一条新路。通过企业内外多种服务的联合,很容易把企业内部数据和客户及合作伙伴的相关数据结合在一起,大大简化了应用程序的创建过程。这就为最终用户发掘了空前的功能涵盖性。例如,利用某公司的雇员福利程序,可以从其HR数据库订购信息,通过Web订购福利管理公司的服务、订购工资管理公司的服务。终端用户可以在简单、直观的界面下操作,而这个界面可以显示他们的累积休假时间、个人所得福利以及上次工资额。
区别:服务器端控件都会有个runat="Server"属性,
这样才能够在后台对其进行设置修改,
也就是在cs代码里面能对其修改设置。
你做下测试 你放个HTML控件 在CS代码是引用不出控件名的
然后你个HTML控件加上runat="Server" 在CS代码就能引用该控件了
本质上ASPNET 的服务器控件 解析后返回到前台还是HTML控件
你建个页面 放一个asp:textbox上去
然后运行页面,然后查看页面源文件
你会发现放上的服务器控件变成了HTML的inupt type="button"
至于你说的视图状态应该是说这个吧:
由于HTTP连接属于无状态的,每次页面请求都无法记录上次请求页面的信息。
那么要保存上次请求页面上控件的值,也就是页面刷新后,填写的值不变,比方在textbox填了个‘a’,页面刷新后还是'a',NET框架为实现这种机制,于是就用到了viewstate视图状态来保存这些控件的值,
那么将所有控件的值存在什么地方呢?你可以运行你的程序,然后在页面中查看源文件,就可以看到一个input type="hidden" name="__VIEWSTATE"的标签,这个就是你所谓的”视图“,它是经过服务器序列化过的,然后服务器接收后会反序列化这些隐藏域的值然后又从新给这些控件赋值,从而页面刷新后还能记录上次请求时候的所有控件的值。服务器控件都会默认保存VIEWSTATE的 有个属性(EnableViewState)可以设置的, 设置为Flase就不保存了,页面刷新后,值也就没了,可以做个测试放个textbox设置为EnableViewState为false,然后输入个值,然后再用按钮去刷新页面,那么textbox会为空,因为没有视图状态记录到上次你输入的值。
客户端控件就是标准的HTML标签
服务器控件是加上runat=server之后的标签,可以在服务器端访问到。
1)、Aspnet服务器控件提供更加统一的编程接口,如每个Aspnet服务器控件都有Text属性。
2)、隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器是ie还是firefox,或者是移动设备。
3)、Aspnet服务器控件可以保存状态到ViewState里,这样页面在从客户端回传到服务器端或者从服务器端下载到客户端的过程中都可以保存。
4)、事件处理模型不同,Html标注和Html服务器控件的事件处理都是在客户端的页面上,而Aspnet服务器控件则是在服务器上,举例来说:
<input id="Button4" type="button" value="button" runat="server"/>
是Html服务器控件,此时我们点击此按钮,页面不会回传到服务器端,原因是我们没有为其定义鼠标点击事件。
<input id="Button4" type="button" value="button" runat="server" onserverclick="test" />
我们为Html服务器控件添加了一个onserverclick事件,点击此按钮页面会发回服务器端,并执行test(object sender, EventArgs e)方法。
<asp:Button ID="Button2" runat="server" Text="Button" />
是Aspnet服务器控件,并且我们没有为其定义click,但是我们点击时,页面也会发回到服务器端。
由此可见:Html标注和Html服务器控件的事件是由页面来触发的,而Aspnet服务器控件则是由页面把Form发回到服务器端,由服务器来处理。
ASP NET服务器控件语法
ASP NET服务器控件比HTML服务器控件具有更多的内置功能 Web服务器控件不仅包括窗体控件(例如按钮和文本框) 而且还包括特殊用途的控件(例如日历 菜单和树视图控件) Web服务器控件与HTML服务器控件相比更为抽象 因为其对象模型不一定反映HTML语法
语法
<asp:控件名 ID= 名称 …组件的其他属性…runat= server />
例 使用ASP NET代码获取服务器控件属性 代码如下 (实例位置 光盘\mr\example\第 章\ )
aspx cs
Response Write(this btnTest Text)
aspx
<asp:Button ID= btnTest runat= server Text 服务器按钮控件 /></div>
运行结果如图 所示
图 ASP NET服务器控件应用
返回目录 ASP NET开发宝典
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
ASP NET MVC 框架揭秘
lishixinzhi/Article/program/net/201311/16019
0条评论