aspnet服务器控件(在ASP.NET中将控件设置为作为服务器控件是为什么)
本文目录
- 在ASP.NET中将控件设置为作为服务器控件是为什么
- ASP.NET框架中,服务器控件分为哪两种
- 什么是ASP.NET中的控件
- html服务器控件和asp.net标准控件的不同
- ASP.NET服务器控件的详细信息
- asp.net客户端控件和服务端控件的区别是什么,举例说明
- asp.net的控件
在ASP.NET中将控件设置为作为服务器控件是为什么
因为服务器要用这些控件呀。
HTML控件是从HTML标记衍生来的,HTML控件的外形与HTML标记相似,不同之处在于:HTML标记只能在客户端浏览器中使用,服务器无法使用。
服务器通常要把控件中的数据或存于数据库中,或做些改变重新发回去等事情。 如果不设置为服务器控件,服务器就不能使用它。
ASP.NET框架中,服务器控件分为哪两种
aspnet提供两种类型的服务器控件:html服务器控件和web服务器控件。
html服务器控件就是在其代码中加入runat=“server”。
web服务器控件就是通常使用的
评论
0
0
0
加载更多
什么是ASP.NET中的控件
ASP.NET
Web
服务器控件是
ASP.NET
网页上的对象,当请求网页时,这些对象将运行并向浏览器呈现标记。
许多
Web
服务器控件与常见的
HTML
元素(如按钮和文本框)类似。
其他控件具有复杂行为,如日历控件和管理数据连接的控件。
一般分为三大类:
1.
ASP.NET
用户控件
除在
ASP.NET
网页中使用
Web
服务器控件外,您还可以使用用于创建
ASP.NET
网页的相同技术创建可重复使用的自定义控件。
这些控件称作用户控件。
用户控件是一种复合控件,工作原理非常类似于
ASP.NET
网页
-
您可以向用户控件添加现有的
Web
服务器控件和标记,并定义控件的属性和方法。
然后可以将控件嵌入
ASP.NET
网页中充当一个单元。
2.
ASP.NET
Web
服务器控件
ASP.NET
Web
服务器控件是
ASP.NET
网页上的对象,这些对象在请求网页时运行并向浏览器呈现标记。
许多
Web
服务器控件类似于常见的
HTML
元素(如按钮和文本框)。
其他控件具有复杂行为,如日历控件以及可用于连接数据源并显示数据的控件。
ASP.NET
还提供支持
AJAX
的服务器控件。
这些控件由服务器和客户端代码组成,这些代码集成在一起可生成丰富的客户端行为。
当您将
AJAX
控件添加到
ASP.NET
网页上时,该页会自动将支持的客户端脚本发送到浏览器以获取
AJAX
功能。
您也可以提供其他的客户端代码来自定义控件的功能,但这不是必需的。
3.
ASP.NET
Web
部件控件
ASP.NET
Web
部件控件是一组集成控件,用于创建这样的网站:最终用户可以在浏览器中直接修改网页的内容、外观和行为。
本节中的主题提供有关
Web
部件的定义、工作原理以及如何使用
Web
部件创建用户可自定义的
ASP.NET
网页的信息。
html服务器控件和asp.net标准控件的不同
Asp.net服务器控件,也叫Web服务器控件和Html服务器端控件的区别:
1、 Asp.net服务器控件提供更加统一的编程接口,如每个Asp.net服务器控件都有Text属性。
2、 隐藏客户端的不同,这样程序员可以把更多的精力放在业务上,而不用去考虑客户端的浏览器是ie还是firefox,或者是移动设备。
3、 Asp.net服务器控件可以保存状态到ViewState里,这样页面在从客户端回传到服务器端或者从服务器端下载到客户端的过程中都可以保存。
4、 事件处理模型不同,Html标注和Html控件的事件处理都是在客户端的页面上,而Asp.net服务器控件则是在服务器上,举例来说:
《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“ /》是Asp.net服务器控件,并且我们没有为其定义click,但是我们点击时,页面也会发回到服务器端。
由此可见:Html标注和Html控件的事件是由页面来触发的,而Asp.net服务器控件则是由页面把Form发回到服务器端,由服务器来处理。
ASP.NET服务器控件的详细信息
ASP.NET 页面框架包含许多内置的服务器控件,用于为 Web 提供结构化程度更高的编程模型。这些控件提供下列功能:
自动状态管理。
简单访问对象值,而无须使用 Request 对象。
能够对服务器端代码中的事件进行响应,以创建结构更好的应用程序。
为网页构建用户界面的公用方法。
根据浏览器的功能自动地自定义输出。
除内置控件外,ASP.NET 页面框架还使您能够创建用户控件和自定义控件。用户控件和自定义控件可以增强和扩展现有控件以构建更加丰富多彩的用户界面。
本文分成以下几个部分:
HTML 服务器控件
Web 服务器控件
基本 Web 控件
验证控件
列表控件
多功能控件
用户控件
自定义控件
回到顶端
HTML 服务器控件
HTML 服务器控件是包括 runat=server 属性的超文本标记语言 (HTML) 元素。HTML 服务器控件与它们的相应 HTML 标记具有相同的 HTML 输出和相同的属性。此外,HTML 服务器控件提供自动状态管理和服务器端事件。HTML 服务器控件具有下列优点:
HTML 服务器控件与它们的相应 HTML 标记一一对应。
编译 ASP.NET 应用程序时,具有 runat=server 属性的 HTML 服务器控件被编译为程序集。
大多数控件都包括该控件最常用事件的 OnServerEvent。例如,《input type=button》 控件包含 OnServerClick 事件。
没有实现为特定 HTML 服务器控件的 HTML 标记仍可用于服务器端;但是,它们被作为 HtmlGenericControl 添加到程序集。
重新提交 ASP.NET 页面后,HTML 服务器控件将保留它们的值。
System.Web.UI.HtmlControls.HtmlControl 基类包含所有常用属性。HTML 服务器控件派生于此类。
外置控件部署
外置控件,在使用前,需要将其添加到Visual Studio .NET环境中。然后就可以通过启动一个新项目来使用新的控件。
虽然有的时候,控件在开发机器上运行正常,但当程序被部署到终端用户机器上时,会出现问题。因为很多终端机器不允许安装外置控件,对于上述问题有简单实用的解决办法-“在服务器上部署 “fp_client” 文件夹”。
fp_client 文件夹包含所有ASP.NET外置控件需要的脚本文件。 拿Spread控件为例,Web 页面上的 Spread 控件实例从服务器上的 fp_client 文件夹中读取前台格式化、样式和脚本功能。 fp_client 文件夹的默认安装路径是:C:\Program Files\GrapeCity\Spread.ASP.5.dotNet20\v5.0.2015\fp_client\fpspread\5_0_2015_2008\HTC
我们需要在 web.config 文件中添加以下代码 fp_client 文件夹进行正确的加载:
《appSettings》
《add key=fp_clientvalue=fp_client/》
《/appSettings》
下面是两个有助于我们更加深入的去解决该问题问题的相关点: 1.上面的标签仅在你想要从程序根目录下载“fp_client”文件夹是需要 ,在这种情况下,你需要复制 fp_client 文件夹并且把它粘帖到程序的根目录下,或者创建一个映射到 fp_client 文件夹的虚拟路径。 2.在服务器上有很多网址运行 Spread for ASP.NET ,我们仅需要把 fp_client 文件夹 复制到服务器的根目录上即可(而不是程序的根目录)。在这种情形下, 上述 web.config 标签是不需要添加的,程序仍然可以完美运行。
asp.net客户端控件和服务端控件的区别是什么,举例说明
客户端控件,即普通Html控件,使用script控制操作
服务器控件,Asp.Net的控件,控制这些控件必须经过服务器处理,然后响应用户
两种控件最直观的区别在于,当网页打开后,其中的按钮点击后可以跳出对话框,在这时候断网,如果是客户端控件,可以正常跳出对话框,如果是服务器控件,则显示页面无法显示
asp.net的控件
asp net的控件分为内置和外置两种。asp net的内置控件分为两种:HTML 控件 (HTML control)和用户控件 (User control)。外置控件,在使用前,需要将其添加到Visual Studio .NET环境中。然后就可以通过启动一个新项目来使用新的控件。 虽然有的时候,控件在开发机器上运行正常,但当程序被部署到终端用户机器上时,会出现问题。因为很多终端机器不允许安装外置控件,对于上述问题有简单实用的解决办法-“在服务器上部署 “fp_client” 文件夹”。
fp_client 文件夹包含所有ASPNET外置控件需要的脚本文件。 拿Spread控件为例,Web 页面上的 Spread 控件实例从服务器上的 fp_client 文件夹中读取前台格式化、样式和脚本功能。 fp_client 文件夹的默认安装路径是:C:\Program Files\GrapeCity\Spread.ASP.5.dotNet20\v5.0.2015\fp_client\fpspread\5_0_2015_2008\HTC
我们需要在 web.config 文件中添加以下代码 fp_client 文件夹进行正确的加载: 《appSettings》《addkey=fp_clientvalue=fp_client/》《/appSettings》下面是两个有助于我们更加深入的去解决该问题问题的相关点: 1.上面的标签仅在你想要从程序根目录下载“fp_client”文件夹是需要 ,在这种情况下,你需要复制 fp_client 文件夹并且把它粘帖到程序的根目录下,或者创建一个映射到 fp_client 文件夹的虚拟路径。 2.在服务器上有很多网址运行 Spread for ASPNET,我们仅需要把 fp_client 文件夹 复制到服务器的根目录上即可(而不是程序的根目录)。在这种情形下, 上述 web.config 标签是不需要添加的,程序仍然可以完美运行。 1、ClientIDMode
渲染ASP NET控件时会自动生成一个ID,当在客户端脚本中引用它们时,却会制造不少麻烦,虽然它是命名容器和ID的简单串联,但仍然无法预测生成的ID范围.
ASP NET 4.0使用ClientIDMode属性解决了这个问题,它允许控制生成这些ID的方法,ClientIDMode有四个可选择的值:AutoID,Static,Predictable和Inherit.下面是这四个值的含义解释:
AutoID – 和4.0以前的版本保持一致,自动生成ID.
Static – 指定ID的值,在渲染控件时不会发生变化.
Predictable – 指定后缀,然后和容器控件的ID属性进行合并.
Inherit – 继承父控件的设置.
注意,Page的默认ClientIDMode属性的值是AutoID,可以通过@ Page指令设置页面级的值,还可以通过修改Web配置文件设置应用程序级的值.
[pre]
《system.web》
《pages clientIDMode=Predictable》《/pages》 《/system.web》
[/pre]
2、Meta关键字和Meta描述
在ASP NET 4.0中Page类增加了两个新的属性:Meta Keywords和Meta Description,可以在运行时设置这两个属性,通过数据库或其它源驱动,并允许动态设置标签,描述特定的页面,下面的Page标签显示了这两个属性. [pre]《%@PageLanguage=C#AutoEventWireup=trueKeywords=keyword1,keyword2Description=mydescription%》C#AutoEventWireup=trueKeywords=keyword1,keyword2Description=mydescription%》C#AutoEventWireup=trueKeywords=keyword1,keyword2Description=mydescription%》[/pre]3、数据绑定控件中的行持久性选择
ASP NET数据绑定控件,如Grid View,都支持行选择,但它们应该选择每个页面上相同编号的行,但ASP NET 4.0以前的版本中,行持久性选择是不能实现的,因为以前的版本选择后续页面上的行时是基于行索引的,ASP NET 4.0提供了一个直观的方法解决了这一问题.
数据绑定控件现在提供了一个EnablePersistedSection属性,它可以帮助实现行持久性选择。
4、AutoEventWireup
AutoEventWireup是很少使用但知名度很高的一个ASP NET属性,简单地说,它设置为True时,在未明确委派的情况下,允许自动调用页面事件。
它的默认值是True,AutoEventWireup属性的缺点在MSDN上有详细描述:它限制了命名事件处理程序的灵活性,另一个缺点是对性能的不利影响,对于高流量的网站,性能影响是巨大的.
5、Page的Header属性
Page类现在提供了Header属性,可以在运行时绑定它,下面的代码示例显示了如何明确设置Title属性.
this.Header.Title = My page title;
当根据某个规则动态关联一个样式表时,这个属性非常方便,在这种情况下,打印页面是理想的候选. [pre]HtmlLinkprintLink=newHtmlLink();printLink.Attributes.Add(type,text/css);printLink.Attributes.Add(rel,stylesheet);printLink.Attributes.Add(href,css/print.css);this.Header.Controls.Add(printLink);[/pre]6、AssociatedControlID属性
可以在一个Web表单中将一个控件关联到另一个服务器控件,这时需要使用服务器控件的AssociatedControlID属性,当根据某些行为为关联的控件设置热键时,这个属性就可以派上用场了.
AssociatedControlID属性的默认值是一个空字符串,它表示控件未与任何服务器控件关联,下面的代码显示了一个Textbox控件是如何与Label服务器控件关联的.
7、ControlState属性
ASP NET最重要的状态管理技术是ViewState,它允许你在往返Web服务器的路上保留值,但由于可在父级关闭,它并不是保存信息可靠的方法.
ASP NET 2.0为服务器控件引入了私有的ViewState,叫做ControlState,它可用来存储控件的关键信息,ASP NET可以处理它的序列化和反序列化.
注意,使用时必须谨慎,因为它会影响页面的性能.
8、Control.PreserveProperty
针对传统的视图状态用法,Rick Strahl为我们提供了另一个选择:PreservedProperties,它可以保存控件ID和属性名称,详细信息请参考Implementing an ASP NET PreserveProperty Control(实现ASP NET PreserveProperty控件).
9、PreviousPageType指令
PreviousPageType指令是ASP NET 2.0跨页面回送机制的一部分,允许指定来源页面的虚拟路径,以便强类型访问来源页面.正常情况下,发送的数据可通过PreviousPage属性和FindControl方法访问,但使用强类型的PreviousPageType指令允许你访问公共属性,而不需要调用FindControl方法.