第8章 ASP用户控件
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 章 网页标准控件控件是一种类,绝大多数控件都具有可视的界面,能够在程序运行中显示出其外观。
利 用控件进行可视化设计既直观又方便,可以实现“所见即所得”(What You See Is What You Get, 简称为 WYSIWYG)的效果。
程序设计的主要内容是选择和设置控件以及对控件的事件 编写处理代码。
本章将介绍网页中最常用的几个标准网页控件。
目的在于学会这些常用控件的使用方 法。
其他控件在后续的章节中介绍。
8.1 网页中的控件类型 的类库中包括大量的控件,根据功能可以将它们分成以下几种类型。
标准控件:这些控件属于服务器控件。
除窗体页中常用的按钮、文本框等控件以外,还 有一些特殊用途的控件,例如,显示日历的控件等。
网页标准控件与 HTML 元素标记之间 不存在一对一的对应关系。
验证控件:用于检验用户的输入。
例如,验证是否缺少必须填入的字段;输入的数据格 式是否符合要求;输入的数据是否在指定的范围内等。
用户控件及自定义控件: 这些控件都是由程序设计者自行定义的控件, 是对系统控件的 扩展。
用户控件可以在项目内不同网页中重复使用,从而提高了程序设计的效率,同时还能 使各网页的显示风格一致。
HTML 控件:默认情况下它属于客户端(浏览器端)控件,但也可以将其转换成服务器端 控件。
每个控件对应于一个 HTML 元素的标记。
数据源控件 这类控件可以针对各种数据源实现数据绑定功能, 这包括微软的 SQL Server 和 Access, 以及其他关系型数据库、XML 文件和代码中实现的类。
数据视图控件 这类控件呈现为各种列表和表格,它们可以绑定到数据源以显示和编辑数据。
个性化控件 这类控件允许用户个性化地展示自己的站点, 包括重新调整网页本身等。
用户信息会被 自动地、透明地保存,并从一个会话持续到下一个会话。
登录控件和安全控件 这类控件实现站点中的普通登录功能,并维护用户的密码。
在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程序设计》课后题答案

<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中自定义用户控件及使用

开发时每次遇到此类操作都进行 相应 的填充操 作 , 一方面会 影响 软件 的运行效率 , 另一方 面代 码冗余 量很 大 , 以有必 要把 它的 所 有关功能封装 , 做成用 户控 件 , 方便 开发人 员编 程 , 而且 , 可 以 也
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用户控件

用户控件的应用本节主要学习用户控件的工作原理、如何创建用户控件以及如何向 网页添加用户控件的信息。
本节内容 用户控件概述如何:将Web 窗体页转换为 用户控件如何:在 网页中包括用户控件如何: 用户控件的实例,用实例详细说明如何使用用户控件用户控件概述在前面的教学示例中使用了,提供的标准控件。
毫无疑问,提供了相当丰富的控件。
但是,有时候这些控件还不能满足实际业务功能的要求。
在这种情况下,就可以使用开发具有所有自定义功能的新控件,本节我们学习如何在创建这些控件。
主要学习用户控件及应用。
自定义控件下节学习。
用户控件和自定义控件的优点在开始创建这些Web控件之前,有必要了解他们的用处。
正如类的构建是为了代码重用性,重用现有用户控件也很必要。
例如,如果不提供控件,那么即使是网页/窗体上的一个文本框也需要编码。
TexTbox控件虽小,但为网页开发人员节省了数小时的重复工作时间。
既然这样一种简单的控件能有如此强大的可重用效果,可以想象如果能够重用向DataGrid这样的复合控件,其帮助作用会有多大。
显而易见,用户控件和自定义控件有助于可视化能力和功能能力的可重用性,还有助于软件封装和分布这些功能。
用户控件是可重用的。
可重用控件用两种方式创建,第一个而且是最简单的方法就如同创建一个页面一样。
这种控件成为用户控件。
这些控件可简单地重用现有的 Web控件和HTML元素创建,生成一个ascx文件。
第二种方法是使用C#创建完成自定义的控件,这种控件叫自定义控件。
用户控件和自定义控件的差别●用户控件用.ascx文件表示。
它不是编译代码,便以随网页动态的进行,自定义控件被编译在DLL文件中,是编译代码。
●用户控件不会出现在工具箱中,而自定义控价会出现在工具箱中。
●用户控件支持缓存,而自定义控件不支持缓存。
●用户控件会对使用可视化设计工具的用户提供有限的支持,而自定义控件控件会提供全面的支持。
什么时候使用用户控件一般地,当内容在逻辑上可组合在一起,而且又有可能要在多处使用时,使用用户控件。
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)控件详解

技术编程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 窗体页的目录,选择页并单击“打开”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名称为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]; }