收藏 分销(赏)

用户控件和自定义控件.ppt

上传人:perfe****esky 文档编号:29587 上传时间:2020-11-23 格式:PPT 页数:15 大小:982KB
下载 相关 举报
用户控件和自定义控件.ppt_第1页
第1页 / 共15页
用户控件和自定义控件.ppt_第2页
第2页 / 共15页
点击查看更多>>
资源描述
,用户控件和自定义控件,2,回顾,在.NET中,Web窗体DataGrid控件派生自类System.Web.UI.WebControls.DataGrid使用DataSource和DataMember属性可将DataGrid绑定到数据源TemplateColumn允许指定在列中出现的控件TemplateColumn的页眉、页脚、项目和编辑项目等4项定义了模板列的内容和外观可使用Select、Edit、Update、Cancel和Delete等ButtonColumns来选择、更新和删除DataGrid中的记录对DataGrid进行分页使用户能按页显示指定数量的记录DataGrid的“属性生成器”对话框定义了用于自定义DataGrid的页眉、页脚、列、分页及各种其他设置,3,目标,明确创建自定义控件的必要性使用ASP.NET创建简单的控件使用C#创建复合控件,4,用户控件和自定义控件之间的差别,用.ascx文件表示不出现在工具箱中支持缓存提供有限的支持,用.DLL文件表示出现在工具箱中不支持缓存提供全面支持,用户控件,自定义控件,.ascx文件,.DLL文件,5,创建用户控件4-1,用户控件,,用户控件,ASP.NET页面,,,用户控件不能独立存在和使用,它要求将ASP.NET页面作为容器,6,创建用户控件4-2,在VS.NET中创建用户控件:创建一个ASP.NETWeb应用程序项目UserControlDemo移动到“项目”菜单,选择“添加Web用户控件”,命名为Head.ascx在Head.ascx上添加控件新建一个Web窗体,命名为TestUserControl.aspx,在解决方案资源管理器里把Head.ascx控件拖放到TestUserControl.aspx页面的涉及视图里编译并在浏览器里浏览TestUserControl.aspx,7,创建用户控件4-3,可以象普通的ASP.NET页面一样,在用户控件上放置Web控件,关于我们最新动态ACCPBENETBTEST,8,创建用户控件4-4,在Web页中使用自定义控件,把自定义控件拖放到Web页面即可,WebForm1测试用户控件,运行结果,9,使用C#创建自定义控件,建立自定义控件步骤在VS.NET的“新建项目”选项中,在模板列表中选择“Web控件库”模板选项,把项目命名为CustomerControls。VisualStudio.NET将创建包含单一自定义控件的代码的项目添加一个新项,在模板里选择自定义控件,命名为UltraTextBox。移至“生成”选项,单击“生成Repeater.cs”将Repeater.cs编译成.dll文件,以便可以用于.aspx页面中在由设计器生成的代码模板UltraTextBox.cs中编写代码,usingSystem;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.ComponentModel;namespaceCustomerControls{[DefaultProperty("Text"),ToolboxData("")]publicclassUltraTextBox:System.Web.UI.WebControls.TextBox{string_validString="";[Bindable(true),Category("Appearance"),DefaultValue("")]publicUltraTextBox(){//关联加载控件时要执行的代码this.Load+=newEventHandler(UltraTextBox_Load);}…,//被允许的字符组成的字符串属性publicstringValidString{get{return_validString;}set{_validString=value;}}//控件加载时要执行的代码privatevoidUltraTextBox_Load(objectsender,EventArgse){//设定文本框输入文本时要调用的Javascript函数this.Attributes.Add("onkeypress","returnCheckInput("+ValidString+");");//得到文本框所在的页面对象System.Web.UI.Pagepage=this.Page;//如果Javascript函数已经被注册到页面,则返回if(page.IsStartupScriptRegistered("UltraTextBoxScript")){return;}…,//注册Javascript函数stringscriptString="";scriptString+="\n\n";scriptString+="\n";page.RegisterStartupScript("UltraTextBoxScript",scriptString);}}},10,把自定义控件添加到工具箱,,11,使用自定义控件-1,,续…,在VS.NET中创建用户控件:新建一个Web工程,命名为TestCustomerControl,用来测试UltraTextBox控件在TestCustomerControl工程添加一个页面,命名为TestUltraText.aspx添加控件,WebForm1,12,使用自定义控件-2,程序运行,只能输入数字,只能输入字母,WebForm1,,浏览器产生的Javascript,13,复合控件2-1,,复合控件,,复合控件,,,自定义控件,Windows控件,14,复合控件2-2,Composite.cs,usingSystem;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;namespaceCompositeControl{publicclassComposite:Control,INamingContainer{publicintVal{get{this.EnsureChildControls();returnInt32.Parse(((TextBox)Controls[1]).Text);},,如果在一个页面上放置多个控件实例,就需要这样做,,,该属性设置和返回在复合控件的文本框中包含的值,,,set{this.EnsureChildControls();((TextBox)Controls[1]).Text=value.ToString();}}protectedoverridevoidCreateChildControls(){this.Controls.Add(newLiteralControl(“值:"));TextBoxbox=newTextBox();box.Text="0";this.Controls.Add(box);this.Controls.Add(newLiteralControl(""));}}},,,,复合控件,与前面已创建的任何其他自定义控件一样,在aspx页面上可以使用这个控件,应写入Codebehind文件中的代码,输出结果,privatevoidbtnIncrement_Click(Objectsender,EventArgse){Composite1.Val=Composite1.Val+1;}privatevoidbtnDecrement_Click(Objectsender,EventArgse){Composite1.Val=Composite1.Val-1;},15,总结,使用用户控件和自定义控件可以实现界面的重用用户控件的扩展名是.ascx,该控件可在一个应用程序中使用,但不能跨应用程序自定义控件被编译成.dll文件,可以放置在工具箱里,它可以是继承于已有的Web控件,也可以是完全自定义。自定义控件可以跨应用程序域复合自定义控件将一个或多个服务器或HTML控件组合在一个Control类中,该类可与其他控件类一起编译,以创建一个程序集,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 应用文书 > PPT模板

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服