.net Framework拾遗(4) Itemplater,TemplateContainerAttribute

原创 2004年10月27日 13:49:00

.net Framework拾遗(4) Itemplater,TemplateContainerAttribute

目录:
1.Itemplater接口
2.ItemplateContainerAttribute类

 

1.Itemplate接口

  当在 .aspx 文件中声明时,为在使用具有内联模板的控件时用子控件填充 ASP.NET 服务器控件定义要实现的方法。
 
  Public Interface ITemplate
 
  该接口供自定义服务器控件使用,但从不通过这些服务器控件实现,asp.net始终负责实现该接口.

 成员只有一个公共方法
  sub Instantiatein(byval Container as control)
  Container:包含内联模板中的实例化控件的control对象
  开发模板服务器控件时,不需要实现此方法。

 Public Sub InstantiateIn(container As Control) Implements ITemplate.InstantiateIn
    Dim l As New Literal()
    AddHandler l.DataBinding, AddressOf Me.BindData
    container.Controls.Add(l)
 End Sub 'InstantiateIn


'------------------------------------------------------------------------------------------------

2.ItemplateContainerAttribute类

  声明在创建后将包含模板的 INamingContainer 的类型。
  System.Object
    System.Attribute
       System.Web.UI.TemplateContainerAttribute

  <AttributeUsage(AttributeTargets.Property)>
  NotInheritable Public Class TemplateContainerAttribute
     Inherits Attribute

 
  '**********************************************************************************************

' File name:templatecontainerattribute.cs.

Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Collections


Namespace CustomControls
  <ParseChildren(True)>  _
  Public Class VB_TemplatedFirstControl
    Inherits Control
    Implements INamingContainer

    Private _firstTemplate As ITemplate
    Private [_text] As [String] = Nothing
    Private _myTemplateContainer As Control
   
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ 
    Protected Overrides Sub OnDataBinding(e As EventArgs)
      EnsureChildControls()
      MyBase.OnDataBinding(e)
    End Sub
     
     
    Public Property FirstTemplate() As ITemplate
      Get
        Return _firstTemplate
      End Get
     
      Set
        _firstTemplate = value
      End Set
    End Property
       
    Public Property [Text]() As [String]
      Get
        Return [_text]
      End Get
        
      Set     
        [_text] = value
      End Set
    End Property
        
    Public ReadOnly Property DateTime() As [String]
     Get
       Return System.DateTime.Now.ToLongTimeString()
     End Get
    End Property
       
    Public ReadOnly Property MyTemplateContainer() As Control
      Get
        Return _myTemplateContainer
      End Get
    End Property
   
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ 
    Protected Overrides Sub CreateChildControls()
        
      If Not (FirstTemplate Is Nothing) Then
        _myTemplateContainer = New VB_FirstTemplateContainer(Me)
        FirstTemplate.InstantiateIn(_myTemplateContainer)
        Controls.Add(_myTemplateContainer)
      Else
        Controls.Add(New LiteralControl([Text] + " " + DateTime))
      End If
    End Sub 'CreateChildControls

  End Class 'VB_TemplatedFirstControl
 
  
  Public Class VB_FirstTemplateContainer
    Inherits Control
    Implements INamingContainer

    Private _parent As VB_TemplatedFirstControl
     
    Public Sub New(parent As VB_TemplatedFirstControl)
      Me._parent = parent
    End Sub 'New
          
    Public ReadOnly Property [Text]() As [String]
      Get
        Return _parent.Text
      End Get
    End Property
     
    Public ReadOnly Property DateTime() As [String]
      Get
        Return _parent.DateTime
      End Get
    End Property

  End Class 'VB_FirstTemplateContainer

End Namespace 'CustomControls

  '***********************************************************************************


 

安装.NET Framework 4失败解决办法

最近安装一工具软件时,提示要先安装.Net Framework 4。下载.Net fwk 4安装过程中,又提示尚未安装“.Net Framework 4 Client Profile”.  进入控制面...
  • wqhlmark64
  • wqhlmark64
  • 2017年06月19日 10:02
  • 454

.net framework4与其client profile版本的区别

简而言之,client profile版本是完整版本的一个子集。包含大多数最常用的功能并减小了体积,以便更容易的安装和发布,同时还有微软所声称的一些好处,比如因为减少了某些库,所以使其更加安全等等。 ...
  • CNHK1225
  • CNHK1225
  • 2015年07月21日 11:19
  • 1924

尚未安装 .NET Framework 4 Client Profile,原因是:HRESULT 0xc8000222,和windows update有关系

解决办法: 1.在win7的C:\Windows\System32目录里面 右键cmd.exe以管理员方式运行 2.上面的cmd命令行里面输入 net stop WuAuServ 3...
  • XuWei_XuWei
  • XuWei_XuWei
  • 2014年01月20日 11:49
  • 1576

Win10安装.net framework 4.0失败提示已是操作系统一部分如何解决(一)

由余matlab仿真,安装后缺少C编译器,前提必须安装.net framework 4.0,所以想在win10系统电脑中安装microsoft .net framework 4.0。可是在安装过程中却...
  • qq_35409640
  • qq_35409640
  • 2017年11月10日 17:35
  • 1449

Windows 7安装.net framework 4 安装

下载VS2010安装失败,换了个版本还是安装失败,失败主要出现在Microsoft .net framewok 4安装时,出现错误, 后下载独立Microsoft .net framework 4.也...
  • kingepoch
  • kingepoch
  • 2013年04月18日 11:08
  • 2757

Microsoft .NET FrameWork 4安装失败解决方法

在WIN7环境下安装VS2010出现Microsoft .NET FrameWork 4安装失败解决方法       一、开始--->运行--->net stop WuAuServ 二、开始...
  • heihei36
  • heihei36
  • 2013年11月19日 20:55
  • 3836

Microsoft .NET Framework 4 Client Profile 导致DLL引用失败

几个用4.0版本编译的DLL, 我在新建一个WindowsFormsApplication
  • PAPALIAN
  • PAPALIAN
  • 2014年04月16日 15:50
  • 1038

“.NET Framework4 无法安装 原因:安装时发生严重错误“ 已解决

终于安装成功了。。。在此
  • catherine627
  • catherine627
  • 2014年04月09日 16:46
  • 5857

安装.NET Framework 4,一直停留在正在安装 .NET Framework 4 Client Profile

安装.NET Framework 4,一直停留在正在安装 .NET Framework 4 Client Profile。 解决方法: 1、在 windows 7 的 C:\Windows...
  • u012359618
  • u012359618
  • 2016年09月13日 23:50
  • 4333

无法安装framework

今天搞了一天,在崩溃边缘,终于搞掂,记录一下 由于安装的错误日志不够详细,所以很难找到问题根源 首先安装 MicrosoftEasyFix(安装和卸载都可以在这里下载:https://support....
  • shongyu
  • shongyu
  • 2016年03月24日 21:03
  • 1035
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.net Framework拾遗(4) Itemplater,TemplateContainerAttribute
举报原因:
原因补充:

(最多只允许输入30个字)