用户控件和自定义控件

上传人:沈*** 文档编号:150175668 上传时间:2022-09-08 格式:PPTX 页数:16 大小:283.38KB
返回 下载 相关 举报
用户控件和自定义控件_第1页
第1页 / 共16页
用户控件和自定义控件_第2页
第2页 / 共16页
用户控件和自定义控件_第3页
第3页 / 共16页
点击查看更多>>
资源描述
第九章第九章用户控件和自定义控件回顾q 在.NET 中,Web 窗体 DataGrid 控件派生自类System.Web.UI.WebControls.DataGridq 使用 DataSource 和 DataMember 属性可将 DataGrid 绑定到数据源q TemplateColumn 允许指定在列中出现的控件TemplateColumn 的页眉、页脚、项目和编辑项目等 4 项定义了模板列的内容和外观q 可使用 Select、Edit、Update、Cancel 和 Delete 等 ButtonColumns 来选择、更新和删除 DataGrid 中的记录q 对 DataGrid 进行分页使用户能按页显示指定数量的记录q DataGrid 的“属性生成器”对话框定义了用于自定义 DataGrid 的页眉、页脚、列、分页及各种其他设置2目标q明确创建自定义控件的必要性q使用 ASP.NET 创建简单的控件q使用 C#创建复合控件3用户控件和自定义控件之间的差别 q用.ascx 文件表示q不出现在工具箱中q支持缓存q提供有限的支持q用.DLL 文件表示q出现在工具箱中q不支持缓存q提供全面支持用户控件自定义控件.ascx文件.DLL 文件4创建用户控件 4-1用户控件 用户控件ASP.NET页面页面用户控件不能独立存在和使用,它要求将 ASP.NET 页面作为容器5创建用户控件 4-2q在 VS.NET 中创建用户控件:q创建一个 ASP.NET Web 应用程序项目 UserControlDemo q移动到“项目”菜单,选择“添加 Web 用户控件”,命名为Head.ascxq在Head.ascx上添加控件q新建一个Web窗体,命名为TestUserControl.aspx,在解决方案资源管理器里把Head.ascx控件拖放到TestUserControl.aspx页面的涉及视图里q编译并在浏览器里浏览TestUserControl.aspx6创建用户控件 4-3可以象普通的ASP.NET页面一样,在用户控件上放置Web控件 关于我们 最新动态 ACCP BENET BTEST 7创建用户控件 4-4在Web页中使用自定义控件,把自定义控件拖放到Web页面即可 WebForm1 测试用户控件 运行结果8使用 C#创建自定义控件q建立自定义控件步骤q在 VS.NET 的“新建项目”选项中,在模板列表中选择“Web 控件库”模板选项,把项目命名为CustomerControls。Visual Studio.NET 将创建包含单一自定义控件的代码的项目 q添加一个新项,在模板里选择自定义控件,命名为UltraTextBox。移至“生成”选项,单击“生成 Repeater.cs”将 Repeater.cs 编译成.dll 文件,以便可以用于.aspx 页面中q在由设计器生成的代码模板 UltraTextBox.cs 中编写代码using System;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;namespace CustomerControls DefaultProperty(Text),ToolboxData()public class UltraTextBox:System.Web.UI.WebControls.TextBox string _validString=;Bindable(true),Category(Appearance),DefaultValue()public UltraTextBox()/关联加载控件时要执行的代码 this.Load+=new EventHandler(UltraTextBox_Load);/被允许的字符组成的字符串属性 public string ValidString get return _validString;set _validString=value;/控件加载时要执行的代码 private void UltraTextBox_Load(object sender,EventArgs e)/设定文本框输入文本时要调用的Javascript函数 this.Attributes.Add(onkeypress,return CheckInput(+ValidString+););/得到文本框所在的页面对象 System.Web.UI.Page page=this.Page;/如果Javascript函数已经被注册到页面,则返回 if(page.IsStartupScriptRegistered(UltraTextBoxScript)return;/注册Javascript函数 string scriptString=;scriptString+=n!-+n;scriptString+=function CheckInput(validString);scriptString+=;scriptString+=for(var i=0;i n;scriptString+=n;page.RegisterStartupScript(UltraTextBoxScript,scriptString);9把自定义控件添加到工具箱10使用自定义控件-1续续q在 VS.NET 中创建用户控件:q新建一个Web工程,命名为TestCustomerControl,用来测试UltraTextBox控件q在TestCustomerControl工程添加一个页面,命名为TestUltraText.aspxq添加控件 WebForm1 11使用自定义控件-2q程序运行只能输入数字只能输入字母WebForm1!-function CheckInput(validString)for(var i=0;i 浏览器产生的Javascript12复合控件 2-1复合控件13复合控件 2-2Composite.csusing System;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace CompositeControl public class Composite:Control,INamingContainer public int Val get this.EnsureChildControls();return Int32.Parse(TextBox)Controls1).Text);如果在一个页面上放置多个控件实例,就需要这样做 该属性设置和返回在复合控件的文本框中包含的值 set this.EnsureChildControls();(TextBox)Controls1).Text=value.ToString();protected override void CreateChildControls()this.Controls.Add(new LiteralControl(“值:);TextBox box=new TextBox();box.Text=0;this.Controls.Add(box);this.Controls.Add(new LiteralControl();复合控件 与前面已创建的任何其他自定义控件一样,在 aspx 页面上可以使用这个控件应写入 Codebehind 文件中的代码 输出结果 private void btnIncrement_Click(Object sender,EventArgs e)Composite1.Val=Composite1.Val+1;private void btnDecrement_Click(Object sender,EventArgs e)Composite1.Val=Composite1.Val-1;14总结q 使用用户控件和自定义控件可以实现界面的重用q 用户控件的扩展名是.ascx,该控件可在一个应用程序中使用,但不能跨应用程序q 自定义控件被编译成.dll 文件,可以放置在工具箱里,它可以是继承于已有的Web控件,也可以是完全自定义。自定义控件可以跨应用程序域q 复合自定义控件将一个或多个服务器或 HTML 控件组合在一个 Control 类中,该类可与其他控件类一起编译,以创建一个程序集15
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!