版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第8章章 用户控件用户控件ASP.NET提供了用户控件设计功能。提供了用户控件设计功能。用户控件基本的应用就是把网页中经常用到的程序封用户控件基本的应用就是把网页中经常用到的程序封装到一个单元中,以便在其他网页中使用,从而提高应用装到一个单元中,以便在其他网页中使用,从而提高应用程序开发效率。程序开发效率。 8.1 用户控件概述用户控件概述用户控件几乎与网页用户控件几乎与网页.aspx文件相似,但仍有以下不同之文件相似,但仍有以下不同之处:处:l 用户控件的文件扩展名为用户控件的文件扩展名为.ascx。l 用户控件中没有用户控件中没有Page指令,而是包含指令,而是包含Control指令,该
2、指令对配置及其相关属性进行定义。指令,该指令对配置及其相关属性进行定义。l 用户控件不能作为独立文件运行,而必须像其他用户控件不能作为独立文件运行,而必须像其他控件一样,将其添加到控件一样,将其添加到ASP.NET网页中。网页中。l 用户控件中没有用户控件中没有html、body或或form元素。元素。8.2 创建创建ASP.NET用户控件用户控件8.2.1 创建用户控件的过程创建用户控件的过程创建用户控件的过程与网页文件十分相似,创建用户控件的过程与网页文件十分相似, “添加新项添加新项”对话框对话框 WebUserControl.ascx设计界面设计界面 源视图代码:源视图代码: 姓名姓名
3、 年龄年龄 8.2.2 设置用户控件设置用户控件1. 设置用户控件的属性设置用户控件的属性 用户控件就是一个类,其中包含的其他控件等都是私有,用户控件就是一个类,其中包含的其他控件等都是私有,外部无法访问它们。外部无法访问它们。为了能通过该类的对象访问这些私有成员,可以通过设为了能通过该类的对象访问这些私有成员,可以通过设计属性的方式来实现。计属性的方式来实现。 例如,对于前面设计的例如,对于前面设计的WebUserControl.ascx用户控件,用户控件,无法通过其对象访问文本框,为此在该用户控件上设计如无法通过其对象访问文本框,为此在该用户控件上设计如下后台代码:下后台代码:public
4、 string sname /公共属性公共属性get return TextBox1.Text; set TextBox1.Text = value; public string sage /公共属性公共属性get return TextBox2.Text; set TextBox2.Text = value; 2. 设置用户控件的方法设置用户控件的方法和设置用户控件的属性一样,可以通过设置用户控件的和设置用户控件的属性一样,可以通过设置用户控件的公共方法来达到访问用户控件中成员的目的。公共方法来达到访问用户控件中成员的目的。 【例【例8.2】 创建一个用户控件创建一个用户控件WebUserC
5、ontrol1.ascx,其中包含一个列表框其中包含一个列表框ListBox1,并设计相关公共方法实现,并设计相关公共方法实现对列表框的操作。对列表框的操作。解:解:其设计步骤如下:其设计步骤如下:(1)创建用户控件)创建用户控件WebUserControl1.ascx。(2)其设计界面如下图所示,包含一个)其设计界面如下图所示,包含一个HTML标签标签和一个列表框和一个列表框ListBox1。(3)在该用户控件上设计如下方法:)在该用户控件上设计如下方法:public int count() /返回列表框中项目个数返回列表框中项目个数return ListBox1.Items.Count;p
6、ublic void clear() /删除所有项目删除所有项目ListBox1.Items.Clear();public void add(string item) /添加一个字符串添加一个字符串ListBox1.Items.Add(item);public void add(ListItem item) /重载函数重载函数,添加一个添加一个ListItem项目项目ListBox1.Items.Add(item);public void remove(int i) /删除指定索引的项目删除指定索引的项目ListBox1.Items.RemoveAt(i); public int select
7、edindex() /返回当前选择项目的索引返回当前选择项目的索引return ListBox1.SelectedIndex;public ListItem indexitem(int i) /返回指定索引的项目返回指定索引的项目return ListBox1.Itemsi;8.3 使用用户控件使用用户控件将将ASP.NET用户控件添加到网页类似于将其他服务器控用户控件添加到网页类似于将其他服务器控件添加到网页。但是,请务必遵循下列过程,以便将所有必件添加到网页。但是,请务必遵循下列过程,以便将所有必需的元素添加到网页中。向网页添加需的元素添加到网页中。向网页添加ASP.NET用户控件的过用户
8、控件的过程如下:程如下:(1)打开要添加)打开要添加ASP.NET用户控件的网页。用户控件的网页。(2)切换到)切换到“设计设计”视图。视图。(3)在)在“解决方案资源管理器解决方案资源管理器”中选择自定义用户控件中选择自定义用户控件文件,并将其拖到网页上。文件,并将其拖到网页上。 【例【例8.3】设计一个使用设计一个使用WebUserControl用户控件的网页用户控件的网页窗体窗体WebFtected void Button1_Click(object sender, EventArgs e)Label1.Text=输入数据如下输入数据如下: + ; Label1.Te
9、xt = Label1.Text + “姓名姓名:” + WebUserControl1.sname + ; Label1.Text = Label1.Text + 年龄年龄: + WebUserControl1.sage;protected void Button2_Click(object sender, EventArgs e) WebUserControl1.sname = ; WebUserControl1.sage = ;设计界面设计界面运行界面运行界面【例【例8.4】设计一个使用设计一个使用WebUserControl1用户控件的网用户控件的网页窗体页窗体WebForm8-2。解
10、:解:其设计步骤如下:其设计步骤如下:(1)在)在Myaspnet网站中添加一个名称为网站中添加一个名称为WebForm8-2的的空网页。空网页。(2)切换到网页)切换到网页“设计设计”视图,添加一个视图,添加一个43的表格,的表格,将第将第1列的所有单元格合并,在其中加入一个列的所有单元格合并,在其中加入一个WebUserControl1用户控件用户控件WebUserControl1_1,在第,在第2列中列中各行加入一个各行加入一个Button控件(从上到下分别为控件(从上到下分别为Button1Button4),将第),将第3列的所有单元格合并,在其中加入一个列的所有单元格合并,在其中加入
11、一个WebUserControl1用户控件用户控件WebUserControl1_2。再在表格下。再在表格下方添加一个方添加一个Label控件控件Label1。设置网页的设置网页的StyleSheetTheme属性为属性为Blue(该主题在上一章创(该主题在上一章创建),设计界面如图建),设计界面如图8.6所示。其中所示。其中4个命令按钮的功能如下:个命令按钮的功能如下:l:将左列表框中所有项目移动到右列表框中。:将左列表框中所有项目移动到右列表框中。l:将左列表框中选定的项目移动到右列表框中。:将左列表框中选定的项目移动到右列表框中。l:将右列表框中所有项目移动到左列表框中。:将右列表框中所
12、有项目移动到左列表框中。l:将右列表框中选定的项目移动到左列表框中。:将右列表框中选定的项目移动到左列表框中。设计界面设计界面protected void Page_Load(object sender, EventArgs e)if (!Page.IsPostBack) /如果网页为首次加载如果网页为首次加载,则执行以下语句则执行以下语句 WebUserControl1_1.add(清华大学清华大学); WebUserControl1_1.add(北京大学北京大学); WebUserControl1_1.add(中国科技大学中国科技大学); WebUserControl1_1.add(南京大
13、学南京大学); WebUserControl1_1.add(华中科技大学华中科技大学); WebUserControl1_1.add(上海交通大学上海交通大学); WebUserControl1_1.add(武汉大学武汉大学); Label1.Text = ; 设计如下事件过程:设计如下事件过程:protected void Button1_Click(object sender, EventArgs e) int i; ListItem item; for (i = 0; i = 0 & i WebUserControl1_1.count() item = WebUserContro
14、l1_1.indexitem(i); WebUserControl1_2.add(item); WebUserControl1_1.remove(i); Label1.Text = 操作成功操作成功; else Label1.Text = 没有选择任何项目没有选择任何项目;protected void Button3_Click(object sender, EventArgs e) int i; ListItem item; for (i = 0; i = 0 & i WebUserControl1_2.count() item = WebUserControl1_2.indexit
15、em(i); WebUserControl1_1.add(item); WebUserControl1_2.remove(i); Label1.Text = 操作成功操作成功; else Label1.Text = 没有选择任何项目没有选择任何项目;运行界面运行界面8.4 将网页转化为用户控件将网页转化为用户控件8.4.1 将单个网页转换成用户控件将单个网页转换成用户控件 将单个网页转换成用户控件的步骤如下:将单个网页转换成用户控件的步骤如下:(1)重命令控件,将文件扩展名改为)重命令控件,将文件扩展名改为.ascx。(2)从网页中删除)从网页中删除html、body和和form元素。元素。(
16、3)将)将Page指令更改为指令更改为Control指令。指令。(4)删除)删除Control指令中除指令中除Language、AutoEventWireup(如果存在)、(如果存在)、CodeFile和和Inherits之之外的所有属性。外的所有属性。(5)在)在Control指令中包含指令中包含ClassName属性(用于将属性(用于将用户控件添加到网页时进行强类型化)用户控件添加到网页时进行强类型化)8.4.2 将代码隐藏网页转换成用户控件将代码隐藏网页转换成用户控件 将代码隐藏网页转换成用户控件的步骤如下:将代码隐藏网页转换成用户控件的步骤如下:(1)重命名)重命名.aspx文件,使其文件扩展名为文件,使其文件扩展名为.ascx。(2)将代码隐藏文件的扩展名更改为)将代码隐藏文件的扩展名更改为.ascx.cs。(3)打开代码隐藏文件并将该文件继承的类从)打开代码隐藏文件并将该文件继承的类从Page更改更改为为UseControl,即将,即将System.Web.UI.Page语句更改为语句更改为System.Web.UI.UserControl。(4)在)在.aspx文件中,执行以下操作:文件中,执行以下操作: 从网页中删除从网页中删除html、body和和form元素。元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年泵类考试题库200道及一套答案
- 2025-2030文化传播业市场竞争供需联系发展计划书
- 2025-2030文化产业园区行业市场供需分析及投资评估规划分析研究报告
- 2025-2030文创衍生品开发市场销量预估品牌授权合作
- 2025-2030政府数据开放共享平台建设进度及政策法规完善研究分析报告
- 2025-2030挪威银行业市场现状供需分析及投资评估规划研究报告
- 2025-2030挪威深海钻探设备行业市场供应需求分析及投资机会规划分析研究报告
- 2025-2030挪威水处理行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030拖尼果业种植行业市场供需现状分析及投资布局规划分析报告
- 2025-2030战略储备物资智能管理系统建设运营技术研究
- 上呼吸道患者护理课件
- 卫星互联网基础知识培训课件
- 2025年敖汉旗就业服务中心招聘第一批公益性岗位人员的112人模拟试卷含答案详解
- 九年级化学实验教案全集
- 某220千伏变电站10千伏电容器开关柜更换工程的安全措施与施工方案
- 钳工个人实习总结
- 大健康养肝护肝针专题课件
- 道路高程测量成果记录表-自动计算
- 关于医院“十五五”发展规划(2026-2030)
- DB31-T 1587-2025 城市轨道交通智能化运营技术规范
- 2025水泥厂生产劳务承包合同
评论
0/150
提交评论