我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NET中使用用户控件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NET中使用用户控件

一、概述:

与WEB窗体页相同,程序员可以使用任何文本编辑器创作用户控件,或者使用代码隐藏类开发用户控件。此外,与WEB窗体页一样,用户控件可以在第一次请求时被编译并存储在服务器内存中,从而缩短以后请求的响应时间。
但与WEB窗体页不同的是,不能独立地请求用户控件,用户控件必须包括在WEB窗体页内才能使用。
用户控件减少了代码的重用性,一个用户控件就是一个简单的ASP.NET页面,不过他是包含在另一个ASP.NET页面的,

用户控件文件有如下特点:

  • 扩展名为:.ascx。

  • 用户控件中没有“@ page”指令,而是包含“@ Control”指令,该指令对配置及其他的属性进行定义。

  • 用户控件不能作为独立文件运行,而是必须像处理控件一样,将它们添加到Asp.net页中。

  • 用户控件中没有html,body,或form元素,这些元素不许位于宿主中。

二、创建用户控件

1.先创建一个ASP.NET Web应用程序又见“添加”、点击“新建项”,选择 Web用户控件点击添加。

2.可在用户控件中添加想要使用的控件。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Content.ascx.cs" Inherits="WebApplication4.Content" %>
<div>
    <span></span>
    <asp:Label ID="lblTitle" runat="server"></asp:Label>
</div>

3.在用户控件后台写入代码。

    public partial class Content : System.Web.UI.UserControl
    {
        public string hif { set; get; }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                lblTitle.Text = hif;
            }
        }
    }

【注意】当用户控件包括在WEB窗体页中时,此用户控件中包含的任何ASP.NET服务器控件的所有属性和方法都将提升为此用户控件的公共属性和方法。

三、使用用户控件

1、声明方式使用用户控件

把用从解决方案管理器将户控件Content.ascx拉入到需要的页面,并引用用户控件中的属性和方法

在页面中注册用户控件

<%@ Register class="lazy" data-src="Content.ascx" tagname="Content" tagprefix="uc1" %>

或在Web.config中注册用户控件:

<controls>
   <add tagPrefix="uc1" class="lazy" data-src="~/Controls/Content.ascx"" tagName="Content"/>
</controls>

调用用户控件:

<uc1:Content ID="Content1" runat="server" />

服务端代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Content1.hif = "aaa";    
    }
}

2、以编程方式加载用户控件

可以使用Page类的LoadControl方法以编程方式载入用户控件。

Content Content2 = (Content)this.LoadControl("Content.ascx");
Content2.hif = "123";
this.Controls.Add(Content2);

3、序列化用户控件成html

利用用户控件的转成字符串返回到客户端,用户ajax请求html内容。

public class ViewManager<T> where T : UserControl
{
    private Page m_pageHolder;
 
    public T LoadViewControl(string path)
    {
        this.m_pageHolder = new Page();
        return (T)this.m_pageHolder.LoadControl(path);
    }
 
    public string RenderView(T control)
    {
        StringWriter output = new StringWriter();
        control.InitializeUserControl();
        this.m_pageHolder.Controls.Add(control);
        HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
 
        return output.ToString();
    }
}

ViewManager中只有两个方法:LoadViewControl和RenderView。LoadViewControl方法的作用是创建一个Control实例并返回,RenderView方法的作用则就是生成HTML了。这个实现方式的技巧在于使用了一个新建的Page对象作为生成控件的“容器”,而最后其实我们是将Page对象的整个生命周期运行一遍,并且将结果输出。由于这个空的Page对象不会产生任何其他代码,因此我们得到的,就是用户控件生成的代码了。

ViewManager<Content> load = new ViewManager<Content>();
Content Content2 = load.LoadViewControl("Content.ascx") as Content;
Content2.hif = "123";
string resultHtml = load.RenderView(Content2);

四、用户控件使用小结

(1)用户控件使开发人员能够使用编写WEB窗体页的相同编程技巧轻松地定义自定义控件。 作为约定,用.ascx文件扩展名指示这样的控件。这样可以确保用户控件文件不能作为独立的WEB窗体页执行。
(2)用户控件通过Register指令包括在另一WEB窗体页中,该指令指定TagPrefix、TagName和class="lazy" data-src location。
(3)注册了用户控件后,可以像普通的服务器控件那样将用户控件标记放置在WEB窗体页中(包括runat="server"属性)。在包含WEB窗体页中将用户控件的公共字段、属性和方法提升为该控件的公共属性(标记属性)和方法。
(4)用户控件参与每个请求的整个执行生存期,并且可以处理自己的事件,封装来自包含WEB窗体页的一些页逻辑。
(5)用户控件不应包含任何窗体控件,而应依靠其包含WEB窗体页在必要时包括窗体控件。
(6)可以使用System.WEB.UI.Page类的LoadControl方法以编程方式创建用户控件。用户控件的类型由ASP.NET运行库决定,遵循约定文件名_扩展名。
(7)只有当为用户控件包括了Register指令时,用户控件的强类型才能由包含WEB窗体页使用(即使没有实际声明的用户控件标记)。

五、结束语

在编写WEB应用程序时,如果将可能重复出现的元素都用用户控件来实现,那将大大减少维护代码的代价。而且在修改代码时,记得修改一段代码却忘了修改另一段同样代码的情况也将不存在了。代码越短,出现错误的因素越少,出现错误的可能性就越小。

用户控件和自定义控件的区别如下:

到此这篇关于ASP.NET中使用用户控件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NET中使用用户控件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.NET用户控件怎么用

这篇文章主要介绍了ASP.NET用户控件怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ASP以及ASP.NET历史回顾ASP.NET技术虽然算是从ASP演变而来的,不过
2023-06-17

ASP.NET ScriptManager控件使用

ASP.NET ScriptManager控件是一个用于管理和组织客户端脚本的控件。它是ASP.NET AJAX框架的一部分,用于提供更好的客户端脚本管理和加载的功能。要使用ScriptManager控件,首先需要在页面上添加一个Scrip
2023-09-23

ASP.NET中如何使用 Login控件

今天就跟大家聊聊有关ASP.NET中如何使用 Login控件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ASP.NET Login控件 Login 控件显示用于执行用户身份验证的用
2023-06-17

ASP.NET中ImageButton控件怎么使用

在ASP.NET中,可以使用ImageButton控件来添加一个带有图像的按钮。1. 首先,在ASP.NET的Web表单中添加一个ImageButton控件。可以使用以下代码:```html```2. 设置ImageButton的属性。可以
2023-08-11

ASP.NET中LinkButton控件怎么使用

在ASP.NET中,可以使用LinkButton控件来创建一个链接按钮。LinkButton控件可以像超链接一样在网页中显示,并且可以触发服务器端的事件。使用LinkButton控件的步骤如下:1. 在ASP.NET页面的HTML代码中,使
2023-08-11

ASP.NET中Button控件怎么使用

在ASP.NET中,可以使用Button控件来创建一个按钮。以下是Button控件的使用步骤:1. 打开ASP.NET页面或用户控件的源代码文件。2. 在页面的HTML标记段落中添加以下代码来创建一个Button控件:```html```在
2023-08-11

ASP.NET中如何使用 ListBox控件

今天就跟大家聊聊有关ASP.NET中如何使用 ListBox控件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在ListMover控件中,JavaScript代码将把项从一个列表移动
2023-06-17

ASP.NET中AdRotator控件如何使用

本篇文章为大家展示了ASP.NET中AdRotator控件如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。AdRodator控件用来在页面上生成随机广告性质的元素,并通过Advertiseme
2023-06-17

ASP.NET Panel控件怎么使用

ASP.NET Panel控件是一个容器控件,用于在页面上组织和管理其他控件。它可以用来将多个控件组织在一起,设置它们的可见性,以及在运行时对它们进行操作。以下是使用ASP.NET Panel控件的步骤:1. 在ASP.NET页面的代码视图
2023-10-11

ASP.NET HtmlAnchor控件怎么使用

ASP.NET HtmlAnchor控件用于创建一个超链接。以下是使用HtmlAnchor控件的步骤:1. 在页面的ASPX文件中,添加一个HtmlAnchor控件:```htmlLink```2. 在代码后台文件(例如.aspx.cs文件
2023-10-10

ASP.NET CustomValidator控件怎么使用

ASP.NET CustomValidator控件是一个自定义验证控件,用于在服务器端或客户端执行自定义的验证逻辑。使用CustomValidator控件,可以按照以下步骤进行操作:1. 在ASP.NET Web表单中添加CustomVal
2023-09-05

ASP.NET RangeValidator控件怎么使用

ASP.NET RangeValidator控件用于验证输入的值是否在指定的范围内。以下是使用ASP.NET RangeValidator控件的步骤:1. 在aspx页面上,找到需要进行验证的输入控件,例如TextBox控件。2. 在需要验
2023-10-10

ASP.NET Repeater控件怎么使用

ASP.NET Repeater 控件是用于在 Web 页面中重复显示数据的控件。它可以绑定到数据源,并将数据源中的每个项显示为重复的模板。下面是使用 ASP.NET Repeater 控件的基本步骤:1. 在 ASP.NET Web 页面
2023-09-05

ASP.NET中RegularExpressionValidator验证控件如何使用

这篇文章给大家介绍ASP.NET中RegularExpressionValidator验证控件如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。ASP.NET验证控件之RegularExpressionValida
2023-06-18

WPF中用户控件和自定义控件如何使用

本篇内容主要讲解“WPF中用户控件和自定义控件如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WPF中用户控件和自定义控件如何使用”吧!介绍无论是在WPF中还是WinForm中,都有用户控
2023-07-05

详解WPF中用户控件和自定义控件的使用

无论是在WPF中还是WinForm中,都有用户控件(UserControl)和自定义控件(CustomControl),这两种控件都是对已有控件的封装,实现功能重用。但是两者还是有一些区别,本文对这两种控件进行讲解
2023-03-02

ASP.NET RequiredFieldValidator控件怎么用

ASP.NET RequiredFieldValidator控件用于验证用户在页面中的输入控件中是否输入了值。它可以用于验证文本框、下拉列表、复选框等输入控件。要使用RequiredFieldValidator控件,需要遵循以下步骤:1.
2023-10-10

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录