0
사용자 정의 asp.net 서버 제어를 구축 중입니다. 디자인 타임에는 사용되지만 표시 런타임은 사용되지 않습니다. 나는 이것을 쓴다.asp.net의 표시 사용자 정의 태그가 없습니다
<cc1:TemplateMenu ID="TemplateMenu1" runat="server">
<HeaderTemplate>
<asp:Label ID="Title" Text="Hello World" runat="server"></asp:Label>
</HeaderTemplate>
<SperatorTemplate>|</SperatorTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox" Text="" runat="server"></asp:TextBox>
<asp:Button ID="Button" Text="Click Me" runat="server"/>
</FooterTemplate>
</cc1:TemplateMenu>
이것은 디자인 타임입니다.
이것은 서버 제어 코드 파일입니다.
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports Yoma.Yoma.CustomControls.BasicTemplate
Namespace Yoma.CustomControls.TemplateMenu
<DefaultProperty("Text"), ToolboxData("<{0}:TemplateMenu runat=server></{0}:TemplateMenu>")> _
Public Class TemplateMenu
Inherits CompositeControl
Private MenuData As New ArrayList
Public Sub New()
MenuData = New ArrayList
Dim MenuItem As New ListItem
MenuItem.Text = "Apress"
MenuItem.Value = "http://www.apress.com"
MenuData.Add(MenuItem)
MenuItem = New ListItem
MenuItem.Text = "Microsoft"
MenuItem.Value = "http://www.microsoft.com"
MenuData.Add(MenuItem)
MenuItem = New ListItem
MenuItem.Text = "ASP.Net"
MenuItem.Value = "http://asp.net"
MenuData.Add(MenuItem)
End Sub
#Region "HeaderTemplate"
Private _HeaderTemplate As ITemplate = Nothing
<Browsable(False), Description("The header template"), PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property HeaderTemplate() As ITemplate
Get
Return _HeaderTemplate
End Get
Set(ByVal value As ITemplate)
_HeaderTemplate = value
End Set
End Property
#End Region
#Region "FooterTemplate"
Private _FooterTemplate As ITemplate = Nothing
<Browsable(False), Description("The footer template"), PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property FooterTemplate() As ITemplate
Get
Return _FooterTemplate
End Get
Set(ByVal value As ITemplate)
_FooterTemplate = value
End Set
End Property
#End Region
#Region "SperatorTemplate"
Private _SperatorTemplate As ITemplate = Nothing
<Browsable(False), Description("The sperator template"), PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property SperatorTemplate() As ITemplate
Get
Return _SperatorTemplate
End Get
Set(ByVal value As ITemplate)
_SperatorTemplate = value
End Set
End Property
#End Region
#Region "Create Control"
Public Sub CreateControlHierarchy()
If HeaderTemplate Is Nothing Then
Dim Header As New BasicTemplateContainer
HeaderTemplate.InstantiateIn(Header)
Controls.Add(Header)
End If
Dim Count As Integer = MenuData.Count
For Each Item As ListItem In MenuData
Dim Link As New HyperLink
Link.Text = Item.Text
Link.NavigateUrl = Item.Value
Controls.Add(Link)
Controls.Add(New LiteralControl("|"))
Next
If FooterTemplate Is Nothing Then
Dim Footer As New BasicTemplateContainer
FooterTemplate.InstantiateIn(Footer)
Controls.Add(Footer)
End If
End Sub
Protected Overrides Sub CreateChildControls()
Controls.Clear()
CreateControlHierarchy()
End Sub
Public Overrides ReadOnly Property Controls() As ControlCollection
Get
EnsureChildControls()
Return MyBase.Controls
End Get
End Property
Public Overrides Sub DataBind()
CreateChildControls()
ChildControlsCreated = True
MyBase.DataBind()
End Sub
#End Region
End Class
End Namespace
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace Yoma.CustomControls.BasicTemplate
<DefaultProperty("Text"), ToolboxData("<{0}:BasicTemplateContainer runat=server></{0}:BasicTemplateContainer>")> _
Public Class BasicTemplateContainer
Inherits WebControl
Implements INamingContainer
Public Sub New()
Me.BorderWidth = 2
Me.BorderStyle = WebControls.BorderStyle.Outset
End Sub
End Class
End Namespace
제발 도와주세요. 정말 문제가 있습니다.
네, 감사합니다. 모두에게 감사드립니다. 하지만 그것은 브라우저에 도달했습니다, 그것은 span 태그를 좋아합니다. 나는 이것을 좋아하지 않는다. 나는 이것을 바로 잡는다. 나는 할 수있다? 말해줘. – zanhtet
@zanhtet, 스팬 태그 *와 (과) 무슨 뜻인지 모르시겠습니까?! 설명해 주시겠습니까? – VinayC