1 / 8

第 14 章 用 户 控 件

第 14 章 用 户 控 件. 1 什么是用户控件 2 创建用户控件的方法 3 使用用户控件 4 定义用户控件属性 5 定义用户控件事件 6 代码分析 7 将 Web 窗体页转换为用户控件. 14.1 什么是用户控件. 用户控件 (User Control) 是一种自定义的组合控件,当多个网页中包括有部分相同的用户界面时,可以将这些相同的部分提取出来,做成用户控件。 用户控件与网页之间还是存在着一些区别:

chavi
Télécharger la présentation

第 14 章 用 户 控 件

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第14章 用 户 控 件 • 1 什么是用户控件 • 2 创建用户控件的方法 • 3 使用用户控件 • 4 定义用户控件属性 • 5 定义用户控件事件 • 6 代码分析 • 7 将Web窗体页转换为用户控件

  2. 14.1 什么是用户控件 • 用户控件(User Control)是一种自定义的组合控件,当多个网页中包括有部分相同的用户界面时,可以将这些相同的部分提取出来,做成用户控件。 • 用户控件与网页之间还是存在着一些区别: • 用户控件文件的扩展名为 .ascx而不是.aspx;代码的分离(隐藏)文件的扩展名是.ascx.cs而不是.aspx.cs; • 在用户控件中不能包含 <HTML>、<BODY>和<FORM>等HTML语言的标记; • 用户控件可以单独编译,但不能单独运行。只有将用户控件嵌入到.aspx文件中时,才能和ASP.NET网页一起运行。

  3. 14.2 创建用户控件的方法 • 下面结合一个示例来讲述创建用户控件的过程。 创建显示一个栏目新闻标题列表的用户控件。 • 创建用户控件的步骤如下所述。 • (1)先创建一个网站。 • (2)右击网站中某个目录,选择【添加新项】,并在打开的对话框中选择【Web用户控件】,然后确定用户控件的名称,再单击【打开】按钮。 • (3)从【工具箱】中将控件添加到Web用户控件中。其中凡是希望用服务器编程方式访问的控件都必须是服务器端控件。 • (4)为各控件设置属性或编写事件代码。 • (5)给用户控件进行编译。方法是先选择用户控件名,然后选择【生成】|【生成页】命令以便完成编译工作。

  4. 14.3 使用用户控件 • 多个网页中可以使用相同的用户控件,而每一个网页可以使用多种不同的用户控件。 • 在设计阶段,有的用户控件并不会充分展开,而是被压缩成小长方形,此时它只起占位的作用。程序运行时才会自动展开。

  5. 14.4 定义用户控件属性 • 通过为用户控件添加属性,显示不同栏目新闻记录。 • 定义步骤: • 将HiddenField控件拖到用户控件上,选择GridView的“配置数据源”选项,进行重新配置。 • 单击WHERE按钮,选择列名为ColunmID,运算符为“=”,选择Control源和控件ID为HiddenField1。 • 在后台代码(.cs文件)中写入如下代码: public string CateID { set { HiddenField1.Value = value; } }

  6. 14.5 定义用户控件事件 • 用户控件也可以定义自己的事件。 • 例子功能:单击一个按钮后,在TextBox控件下方出现日期控件,选择日期后,日期控件隐藏并将所选日期显示在TextBox控件上。 • 步骤: • 首先添加用户控件,并加入TextBox、Button、Calendar控件,设置Calendar的Visible属性为false。 • 双击Button按钮,在单击事件中写入如下代码: protected void Button1_Click(object sender, EventArgs e) { Calendar1.Visible = true; //单击该按钮时显示日期控件 } • 双击日期控件,并在其事件中写入如下代码: protected void Calendar1_SelectionChanged(object sender, EventArgs e) { //将选择的值赋值给TextBox TextBox1.Text = Calendar1.SelectedDate.ToShortDateString(); Calendar1.Visible = false;// 隐藏日期控件 }

  7. 14.6 代码分析 进入ASP.NET的【源】视图,可以看见用户控件的相关代码。其中语句: <%@ Register TagPrefix="uc1" TagName="WebUserControl1" Src="WebUserControl1.ascx" %> 代表用户控件已经在.aspx中注册。 语句中各个标记的含义如下: TagPrefix:代表用户控件的命名空间(这里是ucl),它是用户控件名称的前缀。如果在一个.aspx网页中使用了多个用户控件,而且在不同的用户控件中出现了控件重名的现象时,命名空间是用来区别它们的标志。 TagName:是用户控件的名称,它与命名空间一起来惟一标识用户控件,如代码中的“uc1:WebUserControl1”。 Src:用来指明用户控件的虚拟路径。

  8. 14.7 将Web窗体页转换为用户控件 • 做一些较小的改动即能将Web窗体改变成为用户控件。 • 转换的具体步骤如下: • 在代码(隐藏)文件中将类的基类从 Page更改为UserControl类。例如:在Web窗体页中,类Welcome从Page类继承。语句如下: public class welcome : System.Web.UI.Page{…} 现在改为从UserControl类继承。语句如下: public class welcome : System.Web.UI.UserControl{…} • 在.aspx 文件中删除所有<html>、<head>、<body> 和 <form>等标记。 • 将ASP.NET指令类型从@ Page 更改为 @ Control。 • 更改Codebehind属性来引用控件的代码(隐藏)文件(ascx .cs)。 • 将.aspx 文件的扩展名(后缀)更改为 .ascx。

More Related