用户自定义控件学习笔记

前两天写的程序用了一下用户自定义控件, 在使用的时候总是感觉不太明白尤其是在给自定义控件传递参数和多个自定义控件的组合上不是很明白,今天花了点时间学习一下.总结以下以后也好学习:

1..用户自定义控件:为了提高开发效率和减少维护成本,人们把页面中的相同的东西提取出来放到一个控件中,其他页面只需要直接使用这个控件就可以达到效果(就象我们使用web标准控件似的).同时控件中的内容一修改引用的页面将自动同步修改,这样就大大的减少了维护难度.自定义控件是一个以.ascx为扩展名的文件在其中我们可以写静态或动态的内容:如:Header.ascx

<% @ Control Language = " C# "  AutoEventWireup = " true "  CodeFile = " Header.ascx.cs "  Inherits = " userControl_Header "   %>
< strong >< span style = " font-size: 24pt " > Header </ span ></ strong ><hr/>

使用方法:

<% @ Page Language = " C# "  AutoEventWireup = " true "   CodeFile = " Default.aspx.cs "  Inherits = " _Default "   %>

<% @ Register Src = " userControl/Header.ascx "  TagName = " Header "  TagPrefix = " uc1 "   %>

<! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >

< html xmlns = " http://www.w3.org/1999/xhtml "   >
< head runat = " server " >
    
< title > Untitled Page </ title >
</ head >
< body >
< uc1:Header ID = " Header1 "  runat = server  />  
    
< form id = " form1 "  runat = " server " >
    
< div >
    
</ div >
    
</ form >
</ body >
</ html >

<%@ Register Src="userControl/Header.ascx" TagName="Header" TagPrefix="uc1" %>
注册用户自定义控件,Src为文件相对于引用页的位置,TagPrefix:为命名空间别名,TagName:为类别名.

<uc1:Header ID="Header1" runat=server />引用自定义控件

2..给自定义页面定义属性,在使用是给值:后台代码中加入headerText属性:Hpublic string headerText="Header";

修改自定义控件前台页面:<strong><span style="font-size: 24pt"><%=headerText %></span></strong><hr />让其动态输出内容.在引用页面中定义时给属性付值:
<uc1:Header ID="Header1" headerText="Custom HeaderText"  runat=server  /> 也可以在page_load事件中给自定义控件指定属性或调用他的公共方法:Header1.headerText="Default Page";

3.动态的指定空件:<asp:PlaceHolder ID=holder runat=server/>page-Load事件中:

private  Control control;
    
protected   void  Page_Load( object  sender, EventArgs e)
    
{
        control
=LoadControl("userControl/Header.ascx");
        
this.holder.Controls.Add(control);
    }

这个时候需要将contro转换成具体的类型才可以实现属性的设置,如:((userControl_Header)control).headerText = "Dynatic Header Text";

4.基本上就这么一点东西了.写自定义控件就和写一个类差不多了,可以给它指定属性和方法.还有一点不太明白:自定义控件中不能包含表单,但是一个页面中又只能有一个表单这样当我的页面中包含多个自定义控件时必须一次提交所有控件中的数据而无法只提交某个控件的数据.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值