返回顶部
首页 > 资讯 > 服务器 >ASP.NET中怎么实现一个服务器控件
  • 793
分享到

ASP.NET中怎么实现一个服务器控件

2023-06-18 00:06:07 793人浏览 泡泡鱼
摘要

asp.net中怎么实现一个服务器控件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ASP.NET组件设计之ASP.NET服务器控件1、用户控件类似page,基本上不需要编程,

asp.net中怎么实现一个服务器控件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

ASP.NET组件设计之ASP.NET服务器控件1、用户控件

类似page,基本上不需要编程,可以将某个aspx页面作为复用组件使用。

ASP.NET组件设计之ASP.NET服务器控件2、LiteralControl

ASP.net 将所有不需要服务器端处理的 html 元素和可读文本编译为该类的实例。例如,开始标记中不包含 runat="server" 属性/值对的 HTML 元素被编译为 LiteralControl 对象。

文本控件的行为与文本容纳器一样,这意味着可以从文本控件提取文本,并通过父服务器控件的 Controls 属性从父服务器控件的 ControlCollection 中移除文本控件。因此,当开发从 LiteralControl 类导出的自定义控件时,确保由控件自己执行任何所需的预处理步骤,而不是使用对 LiteralControl.Render 方法调用的调用来实现它们。一般都会这样做以提高 WEB 应用程序的响应时间。

LiteralControl一般不会触发服务器端事件。

可以以编程方式分别使用 ControlCollection.Add 或 ControlCollection.Remove 方法,从页或服务器控件添加或移除文本控件。

ASP.NET组件设计之ASP.NET服务器控件3、HtmlControl

HTML元素的ASP.NET模型服务器端对应组件。每一个HtmlControl直接对应于特定的HTML元素(不一定是输入元素)。

ASP.NET组件设计之ASP.NET服务器控件4、WebControl

通常的Web控件。可以理解为属于复杂的HTML元素以及服务器端处理逻辑组成的。

继承关系:

System.Object      System.Web.UI.Control           System.Web.UI.TemplateControl                  System.Web.UI.Page           System.Web.UI.UserControl           System.Web.UI.LiteralControl           System.Web.UI.HtmlControl           System.Web.UI.WebControl

通常需要程序员开发的属于用户控件、web控件。xxx

从WebControl继承而来的web服务器组件,往往继承了丰富的UI元素和控制能力。

ASP.NET服务器控件之用户控件

为什么是用户控件

现代人喜好偷懒,喜欢“所见即所得”以及“拖放”式的编程。在一个阿ASP.NET web项目中往往会在多个页面中存在共用的UI,譬如header footer等,如果所有页面的内容都一致,往往采用包含特定的js文件来实现,但如果这些多个页面都需要的UI部分跟随不同的用户状态等不同而会不同,这是必须采用动态逻辑处理,普通的js/html就无法满足要求。之前asp中采用include asp文件来实现,现在ASP.NET改变了包含asp文件的种种缺限而采用用户控件来解决。

用户控件本质上是一个独立的ASP.NET文件,扩展名为ascx。用户控件通常依赖于特定的ASP.NET web项目。当使用用户控件时,ASP.NET页面解析器从aspx文件中动态生成一个类,将其编译到一个特定的装配件(临时缓存中托管dll),并按照.net方式引用此类实例,并进行处理。

如何得到用户控件

得到用户控件,在vs中实际上仅需要:

在web项目中添加—〉用户控件—〉输入用户控件名—〉在得到的空白页面进行UI设计,并存储。

使用时,将用户控件拖放在web 窗体上,即可使用用户控件。此时vs替代我们做了一下工作:

在使用用户控件的页面添加一个reGISter指令。具体为:

﹤%@ Register TagPrefix="uc1" TagName="WebUserControl1" Src="WebUserControl1.ascx" %﹥

对于页面解释器可解释为:将﹤uc1: WebUserControl1 作为用户控件来解释,uc1为标签前缀(类似标准web控件的asp标签前缀),WebUserControl1作为此用户控件的标签,遇到这一组合就解释为使用用户控件实例。Src值为该用户控件源文件所在的虚拟路径,但不可以为绝对路径。

用户控件的实质(ASP.NET的用户控件的背景)

ASP.NET是编译的,处理用户控件同处理页面是类似的,页面中所有元素都是编译成特定类被ASP.NET页面类调用、触发事件的。用户控件也是通过此途径被复用的。当处理用户控件时,页面框架执行以下步骤:

解释ascx文件,相应解释成为一个派生于System.Web.UI.UserControl的托管类

动态编译到自动生成的装配件中。

以上过程仅在***次使用用户控件时发生,以后复用此用户控件会省略此步骤。页面使用register指令,将会引用此类。页面中的用户控件会成为此类的实例。实际上用户控件也是编写ASP.NET类,派生于System.Web.UI.UserControl的类,页面使用这些类如同使用ASP.NET的标准类,为以不同在于标准控件类内置可直接实例化使用,而用户控件需要在使用前进行类似页面的编译工作,编译得到类并组装到装配件后可以被实例化。

用户控件编程注意事项

用户组件不可以通过new方式实例化,因为用户控件类属于动态生成,new的时候(这个时候应当是页面编译时候,用户控件还没有被运行使用),用户控件类还不存在。但是可以通过Page.LoadControl(string controlname)来装载,此时为了loadControl可以找到用户控件,需要采用refence指令:

﹤%@ Refence Control=”xxx/UserControlSamples.ascx”%﹥

用户控件可以被另外用户控件嵌套使用,但一定要确保用户控件引用位置正确。

用户控件本身属于UI,可以被缓存,通过ascx文件顶端的OutPutCache指令来确定。

用户控件代码中到的URL是指用户控件存在的路径,而不是调用用户控件的页面代码的路径,需要通过Page.ResolveUrl进行正确的解析。

看完上述内容,你们掌握ASP.NET中怎么实现一个服务器控件的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网服务器频道,感谢各位的阅读!

--结束END--

本文标题: ASP.NET中怎么实现一个服务器控件

本文链接: https://lsjlt.com/news/294906.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NET中怎么实现一个服务器控件
    ASP.NET中怎么实现一个服务器控件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ASP.NET组件设计之ASP.NET服务器控件1、用户控件类似page,基本上不需要编程,...
    99+
    2023-06-18
  • ASP.NET中怎么实现一个复合控件
    这篇文章给大家介绍ASP.NET中怎么实现一个复合控件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。ASP.NET复合控件的呈现引擎在深入探讨 ASP.NET 2.0 编码技术之前,让我们回顾一下复合控件的内部例行过程...
    99+
    2023-06-18
  • ASP.NET中怎么实现一个数据绑定控件
    本篇文章给大家分享的是有关ASP.NET中怎么实现一个数据绑定控件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。ASP.NET数据绑定控件一.回顾如果你使用过ASP.NET内置...
    99+
    2023-06-18
  • VB.NET 中怎么实现一个Label控件
    VB.NET 中怎么实现一个Label控件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.设置标签的文本在VB.NET Label控件中显示文本,使用“Text”属性。在开发...
    99+
    2023-06-17
  • VB.NET中怎么实现一个控件数组
    本篇文章为大家展示了VB.NET中怎么实现一个控件数组,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Public Class CheckBoxArrClass Chec...
    99+
    2023-06-17
  • C#中怎么实现一个日历控件
    本篇文章给大家分享的是有关C#中怎么实现一个日历控件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。定制C#日历控件在把会议添加到数据库中之前,先修改一下日历的显示。***用另一...
    99+
    2023-06-18
  • 使用Asp.NET怎么实现一个限流控制功能
    使用Asp.NET怎么实现一个限流控制功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、AspNetCoreRateLimit 介绍AspNetCoreRa...
    99+
    2023-06-08
  • Android中怎么实现一个瀑布流控件
    本篇文章给大家分享的是有关Android中怎么实现一个瀑布流控件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体如下:public class FlowL...
    99+
    2023-05-30
    android
  • JavaScript中怎么实现一个城市选择控件
    JavaScript中怎么实现一个城市选择控件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现的步骤:一、先用一定的格式罗列...
    99+
    2024-04-02
  • 怎么在Android中实现一个自定义控件
    今天就跟大家聊聊有关怎么在Android中实现一个自定义控件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先定义一个layout实现按钮内部布局:<xml vers...
    99+
    2023-05-31
    android
  • ASP.NETCore中怎么实现一个Kestrel服务器
    这篇文章给大家介绍ASP.NETCore中怎么实现一个Kestrel服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Kestrel Web服务器的概述Kestrel被认为是较新的ASP.NET应用程序的首选Web服...
    99+
    2023-06-19
  • Javascript中怎么实现一个.NET验证控件功能
    Javascript中怎么实现一个.NET验证控件功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先我们看看.NET验证控...
    99+
    2024-04-02
  • 怎么实现一个Http服务器
    这期内容当中小编将会给大家带来有关怎么实现一个Http服务器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。说到http协议和http请求,很多人都知道,但是他们真的“知道”吗我面试过很多求职者,一说到ht...
    99+
    2023-06-04
  • android开发中怎么实现一个日期选择控件
    android开发中怎么实现一个日期选择控件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。效果如下:具体实现方法为:先新建一个安卓项目DoubleDatePicker,在res...
    99+
    2023-05-31
    android roi
  • ASP.NET中ImageButton控件怎么使用
    在ASP.NET中,可以使用ImageButton控件来添加一个带有图像的按钮。1. 首先,在ASP.NET的Web表单中添加一个I...
    99+
    2023-08-11
    ASP.NET ImageButton
  • ASP.NET中LinkButton控件怎么使用
    在ASP.NET中,可以使用LinkButton控件来创建一个链接按钮。LinkButton控件可以像超链接一样在网页中显示,并且可...
    99+
    2023-08-11
    ASP.NET LinkButton
  • ASP.NET中Button控件怎么使用
    在ASP.NET中,可以使用Button控件来创建一个按钮。以下是Button控件的使用步骤:1. 打开ASP.NET页面或用户控件...
    99+
    2023-08-11
    ASP.NET Button
  • Linux中怎么实现一个代理服务器
    本篇文章为大家展示了Linux中怎么实现一个代理服务器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  1.安装Linux,不管是在图形,还是文体下都可以,选择最小安装,在安装的时候可以先配置一下外...
    99+
    2023-06-12
  • Python中怎么实现一个HTTP服务
    Python中怎么实现一个HTTP服务,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实际上来说,这是一个可以用来共享文件的非常有用的方式。实现一个微型的HTTP...
    99+
    2023-06-17
  • 如何在ASP.NET中利用WebApi实现一个版本控制功能
    本篇文章为大家展示了如何在ASP.NET中利用WebApi实现一个版本控制功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。WebApi版本控制的好处有助于及时推出功能, 而不会破坏现有系统,兼容性...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作