第
This presentation is the property of its rightful owner.
Sponsored Links
1 / 8

第 14 章 用 户 控 件 PowerPoint PPT Presentation


  • 122 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

第 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


14

第14章 用 户 控 件

  • 1 什么是用户控件

  • 2 创建用户控件的方法

  • 3 使用用户控件

  • 4 定义用户控件属性

  • 5 定义用户控件事件

  • 6 代码分析

  • 7 将Web窗体页转换为用户控件


14

14.1 什么是用户控件

  • 用户控件(User Control)是一种自定义的组合控件,当多个网页中包括有部分相同的用户界面时,可以将这些相同的部分提取出来,做成用户控件。

  • 用户控件与网页之间还是存在着一些区别:

    • 用户控件文件的扩展名为 .ascx而不是.aspx;代码的分离(隐藏)文件的扩展名是.ascx.cs而不是.aspx.cs;

    • 在用户控件中不能包含 <HTML>、<BODY>和<FORM>等HTML语言的标记;

    • 用户控件可以单独编译,但不能单独运行。只有将用户控件嵌入到.aspx文件中时,才能和ASP.NET网页一起运行。


14

14.2 创建用户控件的方法

  • 下面结合一个示例来讲述创建用户控件的过程。 创建显示一个栏目新闻标题列表的用户控件。

  • 创建用户控件的步骤如下所述。

    • (1)先创建一个网站。

    • (2)右击网站中某个目录,选择【添加新项】,并在打开的对话框中选择【Web用户控件】,然后确定用户控件的名称,再单击【打开】按钮。

    • (3)从【工具箱】中将控件添加到Web用户控件中。其中凡是希望用服务器编程方式访问的控件都必须是服务器端控件。

    • (4)为各控件设置属性或编写事件代码。

    • (5)给用户控件进行编译。方法是先选择用户控件名,然后选择【生成】|【生成页】命令以便完成编译工作。


14

14.3 使用用户控件

  • 多个网页中可以使用相同的用户控件,而每一个网页可以使用多种不同的用户控件。

  • 在设计阶段,有的用户控件并不会充分展开,而是被压缩成小长方形,此时它只起占位的作用。程序运行时才会自动展开。


14

14.4 定义用户控件属性

  • 通过为用户控件添加属性,显示不同栏目新闻记录。

  • 定义步骤:

    • 将HiddenField控件拖到用户控件上,选择GridView的“配置数据源”选项,进行重新配置。

    • 单击WHERE按钮,选择列名为ColunmID,运算符为“=”,选择Control源和控件ID为HiddenField1。

    • 在后台代码(.cs文件)中写入如下代码:

      public string CateID

      {

      set

      {

      HiddenField1.Value = value;

      }

      }


14

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;// 隐藏日期控件

      }


14

14.6 代码分析

进入ASP.NET的【源】视图,可以看见用户控件的相关代码。其中语句:

<%@ Register TagPrefix="uc1" TagName="WebUserControl1"

Src="WebUserControl1.ascx" %>

代表用户控件已经在.aspx中注册。

语句中各个标记的含义如下:

TagPrefix:代表用户控件的命名空间(这里是ucl),它是用户控件名称的前缀。如果在一个.aspx网页中使用了多个用户控件,而且在不同的用户控件中出现了控件重名的现象时,命名空间是用来区别它们的标志。

TagName:是用户控件的名称,它与命名空间一起来惟一标识用户控件,如代码中的“uc1:WebUserControl1”。

Src:用来指明用户控件的虚拟路径。


14 7 web

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。


  • Login