第8章 ASP用户控件

合集下载

asp.net用户控件读取以及赋值

asp.net用户控件读取以及赋值

⽤户控件读取以及赋值XML内容如下:复制代码代码如下:<?xml version="1.0" encoding="utf-8" ?><SystemVersion><Item><Version_ID>1</Version_ID><Version_Name>CN</Version_Name></Item><Item><Version_ID>2</Version_ID><Version_Name>EN</Version_Name></Item></SystemVersion>⽤户控件的关键代码:SystemVersion.ascx复制代码代码如下:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SystemVersion.ascx.cs" Inherits="UserControls_SystemVersion" %><!-- Value是传⼊的值 --><div style="white-space:nowrap"><asp:DropDownList ID="ddlVersion" runat="server"></asp:DropDownList></div>后台⽂件:复制代码代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Xml;using System.Xml.Linq;public partial class UserControls_SystemVersion : erControl{private const string CON_FilePath = "~/App_Data/sysVersion.xml";//// <summary>/// 下拉框赋值/// </summary>public string Value{set { ViewState["Value"] = value; }get { return ViewState["Value"] == null ? null : ViewState["Value"].ToString().Trim(); }}protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){DdlBind();}}public void DdlBind(){XElement xDoc = XElement.Load(Server.MapPath(CON_FilePath)); // Create the queryvar lVersion = from c in xDoc.Descendants("Item")where c.Element("Version_ID").Value == "1" //⽬前只显⽰CN select new{Version_Name = c.Element("Version_Name").Value,Version_ID = c.Element("Version_ID").Value};ddlVersion.DataSource = lVersion.ToList();ddlVersion.DataTextField = "Version_Name";ddlVersion.DataValueField = "Version_Name";ddlVersion.DataBind();if (Value != null){ddlVersion.SelectedValue=Value;}}}。

8.1网页中的控件类型

8.1网页中的控件类型

第 8 章 网页标准控件控件是一种类,绝大多数控件都具有可视的界面,能够在程序运行中显示出其外观。

利 用控件进行可视化设计既直观又方便,可以实现“所见即所得”(What You See Is What You Get, 简称为 WYSIWYG)的效果。

程序设计的主要内容是选择和设置控件以及对控件的事件 编写处理代码。

本章将介绍网页中最常用的几个标准网页控件。

目的在于学会这些常用控件的使用方 法。

其他控件在后续的章节中介绍。

8.1 网页中的控件类型 的类库中包括大量的控件,根据功能可以将它们分成以下几种类型。

标准控件:这些控件属于服务器控件。

除窗体页中常用的按钮、文本框等控件以外,还 有一些特殊用途的控件,例如,显示日历的控件等。

网页标准控件与 HTML 元素标记之间 不存在一对一的对应关系。

验证控件:用于检验用户的输入。

例如,验证是否缺少必须填入的字段;输入的数据格 式是否符合要求;输入的数据是否在指定的范围内等。

用户控件及自定义控件: 这些控件都是由程序设计者自行定义的控件, 是对系统控件的 扩展。

用户控件可以在项目内不同网页中重复使用,从而提高了程序设计的效率,同时还能 使各网页的显示风格一致。

HTML 控件:默认情况下它属于客户端(浏览器端)控件,但也可以将其转换成服务器端 控件。

每个控件对应于一个 HTML 元素的标记。

数据源控件 这类控件可以针对各种数据源实现数据绑定功能, 这包括微软的 SQL Server 和 Access, 以及其他关系型数据库、XML 文件和代码中实现的类。

数据视图控件 这类控件呈现为各种列表和表格,它们可以绑定到数据源以显示和编辑数据。

个性化控件 这类控件允许用户个性化地展示自己的站点, 包括重新调整网页本身等。

用户信息会被 自动地、透明地保存,并从一个会话持续到下一个会话。

登录控件和安全控件 这类控件实现站点中的普通登录功能,并维护用户的密码。

在Asp net中为用户控件(.ascx)添加自定义属性详解

在Asp net中为用户控件(.ascx)添加自定义属性详解

在中为用户控件(.ascx)添加自定义属性详解用户控件应该是大家经常用到的一种控件。

虽说它没有自定义控件的那么灵活,可以布署到任何的项目中。

但在固定的项目中,使用用户控件还是非常方便的,也可以快速提高我们的工作效率。

本人现在的项目中也是使用了大量的用户控件。

大部分的自定义控件的功能,在用户控件中也能实现。

一、本章我们主要讲解如何在用户控件中添加自定义属性。

二、下章我们讲解如何在用户控件中添加类似于DropDownList的下拉属性。

三、再下章我们讲解如何在用户控件中添加自定义事件。

敬请持续关注本站。

闲话少说,开始我们的用户控件开发之旅吧。

一、简单属性新建一个用户控件WebUserControl1.ascx,然后在WebUserControl1.ascx控件中拖放一个TextBox,如果到此为止不再为WebUserControl1.ascx控件添加任何代码,那么在WebUserControl1.ascx之外我们是没有办法给这个TextBox赋值的。

新建一个aspx页,把该控件拖放到该页中,然后右键查看该控件的属性,如下图:如果我们要实现在aspx页中为WebUserControl1.ascx控件的TextBox的Text赋值,就得将TextBox的Text属性公开出来。

这就是为用户控件添加简单属性。

注意:我们这里指的是属性,而不是字段。

而且,这个属性必须是Public的,才能在控件外访问到。

添加属性如下:using System;namespace WebApplication1{public partial class WebUserControl1 : erControl{//这个就是简单属性public string Text{get { return this.TextBox1.Text}set { this.TextBox1.Text = value; }}protected void Page_Load(object sender, EventArgs e){}}}这样,我们就可以在aspx页中访问到Text属性了,再在aspx中右键查看该控件的属性,如下图,就可以看到Text属性并为它赋值了。

(完整版)《Web程序设计》课后题答案

(完整版)《Web程序设计》课后题答案
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode url="~/default.aspx" title="首页" description="首页">
<siteMapNode url="~/Newslist.aspx" title="新闻" description="新闻">
2)Visual Studio内置服务器的作用是什么?
答案:
Visual Studio开发服务器是在Windows操作系统(包括Home Edition版本)上本地运行的Web服务器。与IIS Express一样,它是专门构建用于在本地计算机上运行的。它不会处理针对其他计算机的请求。此外,它也不会提供应用程序范围外的文件。Visual Studio开发服务器是一种方法,可用于在向运行IIS的生产服务器发布网站或应用程序之前在本地进行测试。
(5)在“物理路径”框中,输入d:\CompiledSite。单击“确定”。
(6)在 IIS 管理器的“连接”窗格中,右击新的虚拟目录,然后选择“转换为应用程序”。此时将出现“添加应用程序”对话框。单击“确定”。

1.选择题。
(1)-(5)BCBCD (6)-(10)BACAD
2.填空题。
(1)<body bgcolor=”gray”text=”red”>
Web
1.简答题
1)什么是MSDN,它包含哪些功能?
答案:
MSDN(Microsoft Developer Network)是Microsoft公司面向软件开发者的一种信息服务。MSDN 实际上是一个以 Visual Studio 和 Windows 平台为核心整合的开发虚拟社区,包括技术文档、在线电子教程、网络虚拟实验室、微软产品下载(几乎全部的操作系统、服务器程序、应用程序和开发程序的正式版和测试版,还包括各种驱动程序开发包和软件开发包)、Blog、BBS、MSDN WebCast、与 CMP 合作的 MSDN 杂志等等一系列服务。

ASP.NET中自定义用户控件及使用

ASP.NET中自定义用户控件及使用
界面控件 , 如 , 例 在打开某个添加页 面时 , 实现 自动填 充货 币币种 功能 。此种操作 可能 在做 项 目时会 很频 繁 的用 到 , A P N T 而 S.E 并没有提供具有类 似功 能 的标 准服 务器 控件 。如 果开 发人员 在
开发时每次遇到此类操作都进行 相应 的填充操 作 , 一方面会 影响 软件 的运行效率 , 另一方 面代 码冗余 量很 大 , 以有必 要把 它的 所 有关功能封装 , 做成用 户控 件 , 方便 开发人 员编 程 , 而且 , 可 以 也
Dco a T eaC 。在新 建 的页 面 中拖 放 一个 Do D w Ls 控 ii r r . X tn ye s rp o n i t 件, 并修改其 I D为 D oD w Ls 字典表 。如果需要 的话 , 以在 rp o n i一 t 可 其属性选项 中设置 D oD w Ls控件 的相关属性 参数 , rp o n i t 比如宽度
及 相关函数体 的封装操作 , 以及在 用户页面中如何使用 自定义的 内容。
鞠黼 黧
A . T 定 用 控 自 义 性 S N 自 t T e e a e a lt fr p t ie w r s i h o t a e d v l p n r c s .T i wi o ny i a t s r c h r r e i v o k n t e s f r e e o me tp o e s h s l n o l mp c oo e t w lt
i h s rp g . n t e u e a e Ke wo d A P NE Us r e n d c nr l Us r y rs S . T e —d f e o t s i o e —D f e t iu e e n d at b t i r

aspnet用户控件

aspnet用户控件

用户控件的应用本节主要学习用户控件的工作原理、如何创建用户控件以及如何向 网页添加用户控件的信息。

本节内容 用户控件概述如何:将Web 窗体页转换为 用户控件如何:在 网页中包括用户控件如何: 用户控件的实例,用实例详细说明如何使用用户控件用户控件概述在前面的教学示例中使用了,提供的标准控件。

毫无疑问,提供了相当丰富的控件。

但是,有时候这些控件还不能满足实际业务功能的要求。

在这种情况下,就可以使用开发具有所有自定义功能的新控件,本节我们学习如何在创建这些控件。

主要学习用户控件及应用。

自定义控件下节学习。

用户控件和自定义控件的优点在开始创建这些Web控件之前,有必要了解他们的用处。

正如类的构建是为了代码重用性,重用现有用户控件也很必要。

例如,如果不提供控件,那么即使是网页/窗体上的一个文本框也需要编码。

TexTbox控件虽小,但为网页开发人员节省了数小时的重复工作时间。

既然这样一种简单的控件能有如此强大的可重用效果,可以想象如果能够重用向DataGrid这样的复合控件,其帮助作用会有多大。

显而易见,用户控件和自定义控件有助于可视化能力和功能能力的可重用性,还有助于软件封装和分布这些功能。

用户控件是可重用的。

可重用控件用两种方式创建,第一个而且是最简单的方法就如同创建一个页面一样。

这种控件成为用户控件。

这些控件可简单地重用现有的 Web控件和HTML元素创建,生成一个ascx文件。

第二种方法是使用C#创建完成自定义的控件,这种控件叫自定义控件。

用户控件和自定义控件的差别●用户控件用.ascx文件表示。

它不是编译代码,便以随网页动态的进行,自定义控件被编译在DLL文件中,是编译代码。

●用户控件不会出现在工具箱中,而自定义控价会出现在工具箱中。

●用户控件支持缓存,而自定义控件不支持缓存。

●用户控件会对使用可视化设计工具的用户提供有限的支持,而自定义控件控件会提供全面的支持。

什么时候使用用户控件一般地,当内容在逻辑上可组合在一起,而且又有可能要在多处使用时,使用用户控件。

8用户控件和自定义控件

8用户控件和自定义控件

8.1 用户控件
创建用户控件的规则( 9.1) 创建用户控件的规则(例9.1) 在用户控件中不可以使用<html>、<body>和<head>这3个HTML标 记 用户控件必须使用特定的扩展名.ascx,否则不能正常运行 如果Web表单中使用了@Page指令,则必须把@Page指令修改为 @Control指令。因为@Control指令除支持trace属性外,还支持大部 分的@Page指令属性
第八章 用户控件和自定义控件
用户控件 自定义控件
8.1 用户控件
用户控件的概念 用户控件最简单的一个定义是布局代码中可重用的部分 ,它以.ascx为扩展名保存 创建用户控件非常简单,它们本来就是网页的一部分, 被封装在一个单独的文件中,可以在一个应用程序中根据需要多 次重用 编写用户控件和编写aspx页面的方法一样,我们只需在aspx页面中 编写代码就能够使用它们 用户控件可以引发自定义事件,由客户端用户来响应事件以调用 处理方法 用户控件一次只能被一个应用程序调用,如果想在不同的应用程 序中使用这些控件,就必须把控件复制到每个应用程序的目录中
8.2 自定义控件
创建自定义控件
第一步:编写控件代码
导入控件通常使用3 导入控件通常使用3个命名空间 System:这个命名空间包含的核心系统类,像字符串string和数据int32等 System.Web:它是所有类的父命名空间。它包括像HttpRequest以及 HttpResponse这样的类 System.Web.UI:该命名空间包含了控件类,许多控件类都属于其子类, 例如System.Web.UI.WebControls、System.Web.UI.HtmlControls 注意: 注意: (1)由于是在自己的命名空间中定义,所以类名是任意的,可给控件定义任何喜 欢的有效名称,但应避免使用已由使用的名称或者运行程序的其他部分 使用的名称,这是因为当页面使用@import指令或者在源文件中使用using指令引 用两个相同的命名空间时,发生命名冲突。 (2)声明类时,将类标记为public,任何人都可以创建并且使用该类的一个实例

C#(ASP)控件详解

C#(ASP)控件详解

技术编程2一web项目概述一)创建 Web 项目1.在“文件”菜单中指向“新建”,然后单击“项目”以显示“新建项目”对话框。

2.在“项目类型”窗格中,选择“Visual Basic”或“Visual C#”。

在“模板”窗格中,选择“ Web 应用程序”。

3.在“位置”文本框中,指定要将 Web 项目放置到的位置的 URL,其中包括要为其指定的名称。

例如,若要在默认的 localhost 位置创建标题为 myWebApp 的项目,http://localhost/myWebApp这使您能够准确地将项目文件放入 Web 服务器上的指定目录。

4.单击“确定”创建 Web 项目。

二)打开 Web 项目1.在“文件”菜单中指向“打开”,然后选择“Web 上的项目”。

2.在“打开 Web 上的项目”对话框中,输入项目所在的 Web 服务器的URL,然后单击“确定”。

3.在“打开项目”对话框中,双击 Web 项目的文件夹。

4.双击适当的项目文件以打开该项目。

注意:若从别的机器拷过来的项目,需进行虚拟目录的创建。

三)向 Web 项目中添加 Web 窗体页注意可以将Web 窗体页添加到现有的Web 项目中,也可以从其他项目添加页。

但是,一个项目中的所有页必须使用同一种编程语言。

例如,不能将Visual C# Web 窗体页添加到V isual Basic 项目中,反之亦然。

创建 Web 窗体页1.在“解决方案资源管理器”中,右击项目名称,单击“添加”,然后单击“添加 Web 窗体”。

即会显示“添加新项”对话框。

2.在“类别”窗格中,验证“Web 项目项”节点是突出显示的,然后在“模板”窗格中选择“Web 窗体”。

3.在底部的“名称”框中提供窗体名称,然后单击“打开”。

将现有 Web 窗体页添加到项目中1.在解决方案资源管理器中,右击项目名称,单击“添加”,然后单击“添加现有项”。

显示“添加现有项”对话框。

2.定位到包含 Web 窗体页的目录,选择页并单击“打开”。

用户控件

用户控件

刘骥
6.3 用户控件与宿主页的交互
除了可以直接引用用户控件之外, 除了可以直接引用用户控件之外,还可以与 宿主页来进行交互, 宿主页来进行交互,这时可以通定义属性或通过 下面方法进行。 下面方法进行。 在宿主页中访问用户控件TestControl1中的控 中的控 在宿主页中访问用户控件 的文字: 件textbox1的文字: 的文字 ((TextBox)TestControl1.FindControl("textbox 1")).Text
第六章 用户控件
2.0
பைடு நூலகம்
刘骥
6.1 用户控件概述
用户控件(UserControl)是被转换成控件的 页面,文件的扩展名是.ascx,其编写方 式与普通的Web页编写方式非常类似。
2.0
刘骥
6.1用户控件概述 用户控件概述
WEB用户控件可以重复使用,而且可以设定 属性,非常灵活。使用用户控件也非常的方便, 只要把创建好的WEB用户控件拖到你想要放的地 方就可以了。对于一些频繁使用的功能,使用用 户控件能够节省大量的时间,而且可以更方便地 对网站进行更新和维护。
2.0
刘骥
6.2 创建用户控件
第一步是在解决方案资源管理器中右击网站名, 第一步是在解决方案资源管理器中右击网站名,选 择添加新项,然后选择用户控件模板。 择添加新项,然后选择用户控件模板。 像编写普通页面一样来制作用户控件。 第二步 像编写普通页面一样来制作用户控件。
2.0
2.0
刘骥
6.3 用户控件与主页面的交互
可以使用静态方法LoadControl动态加载用户控 件。例如下面语句就可以实现动态加载 search.ascx实例到Panel1中。 Control aa = LoadControl("search.ascx"); this.Panel1.Controls.Add(aa);

ASP服务器控件

ASP服务器控件

图片按钮(ImageButton)控件
执行控件

HyperLink控件用于创建超链接,相当于HTML元素的<a>标记。 HyperLink控件声明的代码如下:<asp:HyperLink ID="HyperLink1“ runat="server">HyperLink</asp:HyperLink>
服务器控件类

服务器控件的基类 WebControl定义了一 些可以应用于几乎所有 的服务器控件的基本属 性,属性的使用方式有 三种 : (1) 在与控件对应的属 性窗口里设置属性。 (2) 在定义控件的标记 里设置属性。 (3) 在后台代码中利用 “.”操作符设置属性。
服务器控件类
服务器控件的基本属性
输入控件

CheckBoxList控件用于在Web窗体中创建复选框组,它是一个CheckBox 的集合,控件声明方法代码如下:<asp: CheckBoxList ID= “CheckBoxList1” runat=”Server” ></asp: CheckBoxList>
输出控件


我们把网页上用来显示给用户浏览的内容称 为输出的内容,而组成输出内容的服务器控 件就称为输出控件。 在服务器控件中主要的输出控件有 Label控 件和Image控件等。
输出控件

标签(Label)控件
Label服务器控件为开发人员提供了一种以编程方式 设置Web窗体页中文本的方法。通常当希望在运行时 更改页面中的文本时就可以使用Label控件。当希望 显示的内容不可以被用户编辑时,也可以使用Label 控件。 Label控件最常用的Text属性用于设置要显示的文本 内容,声明Label控件的语法定义如下: <asp:Label id="Label1" Text="要显示的文本内 容" runat="server"/></asp:Label>

用户控件

用户控件
Control1.ascx
应用程序 A
Page1.aspx
Page2.asp x
使用用户控件的原因
• 用户控件的不足
– 每个应用程序中需要控件的一个单独副本 – 不能在使用其他语言开发的 Web 应用程序 中重用 – 不能将用户控件添加到 Visual Studio .NET 工具箱中
• 解决方案:Web 自定义控件
• <%@ Register Src="SearchUserControl.ascx" TagName="SearchUserControl" TagPrefix="uc1" %>
• (2)在网页的<form>元素内部声明用户控 件元素。如:
• <uc1:SearchUserControl ID="SearchUserControl1" runat="server" />
– 指定用户控件标记的名称
• Src 属性
1.3 使用用户控件
• 手动添加用户控件
– 添加 @Register 指令 – 在 Web 窗体中插入用户控件
<%@ Register Src="numberbox.ascx" TagName="numberbox" TagPrefix="uc1" %>
...
<form id = “form1” runat=“server”> <uc1:numberbox ID="Numberbox1" runat="server" /> </form>

ASP服务器控件

ASP服务器控件

- Web 服务器控件Web 服务器控件是服务器可理解的特殊 标签。

类似 HTML 服务器控件,Web 服务器控件也在服务器上创建,它们同样需要 runat="server" 属性以 使其生效。

不过,Web 服务器控件没有必要映射任何已存在的 HTML 元素,它们代表更复杂的元素。

创建 Web 服务器控件的语法是:<asp:control_name id="some_id" runat="server" />在下面的例子中,我们在 .aspx 文件中的声明了一个 Button 服务器控件。

然后我们为 Click 事件创建 了一个事件句柄,它可修改按钮上的文本:<script runat="server"> Sub submit(Source As Object, e As EventArgs) button1.Text="You clicked me!" End Sub </script> <html> <body> <form runat="server"> <asp:Button id="button1" Text="Click me!" runat="server" OnClick="submit"/> </form> </body> </html> - Validation 服务器控件Validation 服务器控件用于验证用户输入。

如果用户输入没有通过验证,将给用户显示一条错误消息。

每种 validation 控件执行一种特定的验证类型(比如验证某个具体的值或者某个范围的值)。

asp.net给用户控件增加事件和属性

asp.net给用户控件增加事件和属性

给用户控件增加事件和属性意图是这样的:管理页面中,总会有一些新增啊,删除啊,修改啊之类的按钮,为了方便,我想做个用户控件;这个用户控件,里面有三个按钮,新增、修改、删除;这个用户控件要在多个页面上出现,当然,修改与删除的对像也不相同;所以,这个用户控件,在不同的页面中,这三个按钮会使用不同的事件;(如果只是加事件,直接双击按钮就可以加了)用户控件的代码<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserLogin.ascx.cs" Inherits="UserLogin" %> <html xmlns="/1999/xhtml" ><body><table border="1"><tr><td>用户名:</td><td><asp:TextBox ID="txt1" runat="server"></asp:TextBox></td></tr><tr><td>密码:</td><td><asp:TextBox ID="txt2" TextMode="password" runat="server"></asp:TextBox></td></tr><tr><td><asp:Button ID="ButAdd" runat="server" Text="新增" OnClick="ButAdd_Click" /><asp:Button ID="ButMod" runat="server" Text="修改" OnClick="ButMod_Click" /><asp:Button ID="ButDel" runat="server" Text="删除" OnClick="ButDel_Click" /></td><td><asp:LinkButton ID="LinkButton1" Text="登陆" OnClick="MyOnClick" runat="server" ></asp:LinkButton></td> </tr></table></body></html>用户控件C#中的代码using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;//using System.Collections.Generic;//using System.Text;public partial class UserLogin : erControl {protected void Page_Load(object sender, EventArgs e){}//添加属性public string UserName{get { return txt1.Text; }set { txt1.Text = value; }}//添加属性public string PassWord{get { return txt2.Text; }set { txt2.Text = value; }}//定义一个委托public delegate void userEvent(object sender, EventArgs arg); ////添加事件public event userEvent Login; //添加事件句柄protected void MyOnClick(object Sender, EventArgs e){if (Login != null)Login(this, new EventArgs()); //激活Login事件}////定义一个委托//public delegate void userEvent(object sender, EventArgs arg);//////添加三个事件public event userEvent Add;public event userEvent Delete;public event userEvent Modify;//#region 控件中按钮的事件protected void ButAdd_Click(object sender, EventArgs e){if (this.Add != null)this.Add(this, e);}protected void ButDel_Click(object sender, EventArgs e){if (this.Delete != null)this.Delete(this, e);}protected void ButMod_Click(object sender, EventArgs e){if (this.Modify != null)this.Modify(this, e);}#endregion}上面用到了事件与委托;利用用户控件中的按钮来触发自己定义的事件;那么,在aspx页面中引用这个控件时:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Src="UserLogin.ascx" TagName="UserLogin" TagPrefix="uc1" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head runat="server"><title>无标题页</title></head><body style="margin-left:0px"><form id="form1" runat="server"><div><uc1:UserLogin ID="UserLogin1" OnAdd="ButAdd_Click" OnDelete="ButDel_Click" OnModify="ButMod_Click" OnLogin="OnLoginPress" runat="server" /><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></div></form></body></html>在这个aspx页面的C#文件中,有这样一些事件protected void OnLoginPress(Object Render, EventArgs e){TextBox1.Text = erName;TextBox2.Text = UserLogin1.PassWord;}protected void ButAdd_Click(object sender, EventArgs e){//this.Response.Write(sender.GetType().ToString());TextBox1.Text = "添加了数据!";}protected void ButDel_Click(object sender, EventArgs e){TextBox1.Text = "我已删除";//this.Response.Write("删除");}protected void ButMod_Click(object sender, EventArgs e){TextBox1.Text = "修改了数据!";//this.Response.Write("修改");}那么,在不同的aspx文档中,我就可以写不同的事件了;很简单吧;这样,我们还可以在用户控件中判断当前登录用户的权限,例如,如果没有删除权限,删除按钮就不出现;。

第8章用户控件

第8章用户控件

8.2 用户控件
• 1)创建简单的用户控件 • 用户控件是一个分部类。它会和 自动 生成的独立部分合并。要测试用户控件,必须把 它放入一个 Web 窗体上。通过 Register 指令告诉 你要使用一个用户控件: • <%@ Register Src="Header.ascx" TagName="Header" TagPrefix="apress" %>
8.2 用户控件
• 给用户控件添加属性时,理解页面事件发生的顺序就变 的很重要了,一般按如下顺序初始化页面: • 请求页面。 • 创建用户控件。如果变量有默认值,或者在类的构造函数 里执行了初始化,那么此时会用到它们。 • 如果在用户标签里设置了任意属性,会用到它们。 • 执行页面的 Page.Load 事件,准备初始化用户控件。 • 执行用户控件的 Page.Load 事件,准备初始化用户控件。 • 理解了这个顺序后你会明白,不应该在 用户控件的 Page.Load 事件里执行用户控件初始化,因为它可能会覆 盖客户端指定的设置。
8.2 用户控件
• • • • • • • • • • • • public LinkTableItem[] Items { get { return items; } set { items = value; this.gridLinkList.DataSource = items; this.gridLinkList.DataBind();
8.1 Web部件
• 2)基本的 Web部件
• 添加 WebPartZone 控件。页面上的每个要显示 Web 部件的区域都被封 装在 WebPartZone 的一个实例里。 • 添加 Web 部件。可以使用简单的用户控件、预置的用户控件、自定 义服务器控件或者直接从 WebPart 基类派生来的控件。 • 添加预置区域和部件。如果用户想要在运行时添加或者删除 Web 部 件,或者编辑 Web 部件的属性,你需要添加预置的区域到网页,如 CatalogZone(该区域允许用户向页面添加 Web 部件)。

ASP.NET-控件篇

ASP.NET-控件篇

-控件篇-控件篇对于的控件,微软进⾏了封装,根本就是看不到源代码。

从⽽产⽣了⾃⼰编写控件的模式。

也产⽣了很多的第三⽅控件。

对于这些控件,都是实现了微软的⽅法才可以运⾏在.NET平台中。

下⾯我们来看看⼀些简单的控件的编写。

当然⾸当其冲的就是⽤户控件,对于⽤户控件。

他的编写可能会很⽅便。

没有那么多的复杂的代码量。

对于⽤户控件后缀名是.ascx,它的编码⽅式和页⾯的编码⽅式其实没什么很⼤的区别,关键点就是在于他们之间的调⽤。

对于页⾯调⽤和控件直接值得的传递,⽅法的调⽤,如何能够在本页⾯中调⽤控件中的⽅法。

这是很关键的。

其实这⾥⼤家可能第⼀就是委托了。

通过委托让他们直接有沟通的桥梁。

说道这⾥确实是这样的。

对于委托,这⾥名词,对于初学者是很难理解的。

就算理解了字⾯的意思,也不是很明⽩代码之间的意思吧!下⾯我们来开⽤户控件的代码。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="erControl.WebUserControl1" %>对于这句代码的各个部分的说明:⾸先指明⼀点就是<%@%>这个标⽰符,表⽰对于控件的命名空间的引⽤,并不是很难理解。

Control Language表⽰编写控件所需要的语⾔,AutoEventWireup表⽰是否⾃动回传到服务器端,默认情况是true,CodeBehind表⽰控件所定义的后台代码⽂件名称,Inherits表⽰指定要继承的CodeBehind类。

当然这些都是VS⾃动回产⽣的。

不⽤⼿动编码了。

这是控件的后台页⾯,可能会很熟悉。

当然这就是和页⾯类很相似了。

对于它的实现。

只需要从⼯具箱中拖⼊所需要的控件,进⾏排版就可以了。

控件的使⽤:当然控件完成后编译⽣成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
① 打开ch8网站,选择“网站|添加新项”菜单命令,添加一个文件
名称为WebForm2.aspx的代码隐藏页模型的网页。
② 切换到网页“设计”视图,在“解决方案资源管理器”中选择
WebUserControl.ascx文件将其拖到网页上,这样在网页中生成一个名称
为WebUserControl1的用户控件。另外添加两个Button控件(“确定”命 令按钮Button1和“重置”命令按钮Button2)和一个Label控件Label1
② 选择“文件|新建|网站”命令,出现“新建网站”对话框,选择 “空网站”模板,选择“Web位置”为“文件系统”,单击
“浏览”按钮,选择“D:\\ch8”目录,单击“确定”按钮,创
建了一个空的网站ch8。
③ 选择“网站|添加新项”菜单命令,出现“添加新项-ch8”对话框,
在中间列表中选择“Web用户控件”模板,保持默认名称为
WebUserControl.ascx,如图8.1所示,单击“添加”按钮。
④ 进入用户控件的设计视图,插入一个2×2的表格,输入两个HTML
标签,拖放两个文本框(TextBox1和TextBox2),如图8.2所示。
⑤ 进入源视图,看到其源视图代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> <style type="text/css"> .auto-style1 { width: 200px; } .auto-style2 { font-family: 楷体; font-size: medium; color: #0000FF; font-weight: bold; } .auto-style3 { font-family: Arial; font-weight: bold; font-size: small; } </style>
protected void Button3_Click(object sender, EventArgs e) { int i; ListItem item; for (i = 0; i < WebUserControl12.count(); i++) { item = WebUserControl12.indexitem(i); WebUserControl11.add(item); } WebUserControl12.clear(); Label1.Text = "操作成功"; } protected void Button4_Click(object sender, EventArgs e) { int i; ListItem item; i = WebUserControl12.selectedindex(); if (i >= 0 && i < WebUserControl12.count()) { item = WebUserControl12.indexitem(i); WebUserControl11.add(item); WebUserControl12.remove(i); Label1.Text = "操作成功"; } else Label1.Text = "没有选择任何选项"; }
该指令对配置及其相关属性进行定义。
用户控件不能作为独立文件运行,而必须像其他控件 一样,将其添加到网页中。
用户控件中没有html、body或form元素。
用户控件的主要优点如下:
可以将常用的内容或控件以及控件的运行程序逻辑设计为 用户控件,然后便可以在多个网页中重复使用该用户控件, 从而省略许多重复性的工作。 如果网页内容需要改变时,只需修改用户控件中的内容,
运行界面
【例8.4】 在ch8网站中设计一个WebForm2网页,其功能 是说明前面创建的WebUserControl1. ascx用户控件的使用方 法。 解:其设计步骤如下:
① 打开ch8网站,选择“网站|添加新项”菜单命令,添加一个文件
名称为WebForm2.aspx的代码隐藏页模型的网页。
设 计 界 面
在该网页上设计如下事件过程:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) //如果网页为首次加载,则执行以下语句 { WebUserControl11.add("清华大学"); WebUserControl11.add("北京大学"); WebUserControl11.add("中国科技大学"); WebUserControl11.add("南京大学"); WebUserControl11.add("华中科技大学"); WebUserControl11.add("上海交通大学"); WebUserControl11.add("武汉大学"); Label1.Text = ""; } }
此新控件的标记与网页的标记相似,只是它包含 @Control指令,而不含@Page指令,并且用户控件没有html、body 和form元素。
8.2.2 设置用户控件
1. 设置用户控件的属性
用户控件就是一个类,其中包含的其他控件等都是私有, 外部无法访问它们。 为了能通过该类的对象访问这些私有成员,可以通过设 计属性的方式来实现。
protected void Button1_Click(object sender, EventArgs e) { int i; ListItem item; for (i = 0; i < WebUserControl11.count(); i++) { item = WebUserControl11.indexitem(i); WebUserControl12.add(item); } WebUserControl11.clear(); Label1.Text="操作成功"; } protected void Button2_Click(object sender, EventArgs e) { int i; ListItem item; i = WebUserControl11.selectedindex(); if (i >= 0 && i < WebUserControl11.count()) { item = WebUserControl11.indexitem(i); WebUserControl12.add(item); WebUserControl11.remove(i); Label1.Text = "操作成功"; } else Label1.Text = "没有选择任何选项"; }
第8章 用户控件
提供了用户控件设计功能。 用户控件基本的应用就是把网页中经常用到的程序封 装到一个单元中,以便在其他网页中使用,从而提高应用 程序开发效率。
用户控件几乎与网页.aspx文件相似,但仍有以下不同之 处:
用户控件的文件扩展名为.ascx。 用户控件中没有@Page指令,而是包含@Control指令,
上述方法都是通过ListBox控件的相关属性和方法来实现 的,只不过不能通过WebUserControl1用户控件的对象直接调 用ListBox1控件的这些属性和方法罢了,而是改为调用上述方 法实现相同的功能。
将用户控件添加到网页类似于将其他服务器控 件添加到网页。但是,请务必遵循下列过程,以便将所有必 需的元素添加到网页中。向网页添加用户控件的过 程如下:
2. 设置用户控件的方法
和设置用户控件的属性一样,可以通过设置用户控件的 公共方法来达到访问用户控件中成员的目的。
【例8.2】 创建一个用户控件WebUserControl1.ascx,其中包 含一个列表框ListBox1,并设计相关公共方法实现对列表框的操 作。 解:其设计步骤如下:
① 打开ch8网站,采用例8.1的方式创建用户控件WebUserControl1.ascx。
<table class="auto-style1"> <tr> <td class="auto-style2">学号:</td> <td> <asp:TextBox ID="TextBox1" runat="server" CssClass="auto-style3" Width="87px"></asp:TextBox> </td> </tr> <tr> <td class="auto-style2">姓名:</td> <td> <asp:TextBox ID="TextBox2" runat="server" CssClass="auto-style3" Width="85px"></asp:TextBox> </td> </tr> </table>
public void remove(int i) //删除指定索引的选项 { ListBox1.Items.RemoveAt(i); } public int selectedindex() //返回当前选择选项的索引 { return ListBox1.SelectedIndex; } public ListItem indexitem(int i) //返回指定索引的选项 { return ListBox1.Items[i]; }
相关文档
最新文档