다음과 같은 내용으로 생성 될 사용자/서버 컨트롤을 만들려고합니다.asp : ListItem 목록을 자식 컨트롤로 사용하는 ASP.NET 사용자/서버 컨트롤을 만드는 방법은 무엇입니까?
<my:MyListControl runat="server">
<asp:ListItem Text="Test1" Value="Test1" />
<asp:ListItem Text="Test2" Value="Test2" />
</my:MyListControl>
기사 또는 코드 샘플.
어떤 기본 클래스에서 상속해야합니까? 재정의 할 대상은 무엇입니까?
아마도 내 컨트롤에서 허용하는 하위 항목을 사용자 지정하는 방법 (my : ListItem 대신 asp : ListItem).
내가하고 싶은 것은 내 사이트의 작은 부분에 대한 아주 간단한 빵 부스러기 컨트롤을 만드는 것입니다. 나는 재고가있는 ASP.NET 컨트롤을 모두 사용하고 있지만 항목은 코드에 추가되어 철자 오류를 수정하거나 버그를 서식 지정하는 것이 이상적이지 않은 재 컴파일을 포함합니다.
편집 :
다음은 조쉬의 제안을 추가 한 코드입니다.
네임 스페이스 MySite.Controls 부분 클래스 BreadCrumbs Inherits UserControl
Private m_BreadCrumbs As New List(Of BreadCrumbItem)
<PersistenceMode(PersistenceMode.InnerProperty)> _
Public Property Items() As List(Of BreadCrumbItem)
Get
Return m_BreadCrumbs
End Get
Set(ByVal value As List(Of BreadCrumbItem))
m_BreadCrumbs = value
End Set
End Property
Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
Bind()
End Sub
Private Sub Bind()
lvCrumbs.DataSource = Items
Me.DataBind()
End Sub
End Class
Public Class BreadCrumbItem
Private m_Text As String
Public Property Text() As String
Get
Return m_Text
End Get
Set(ByVal value As String)
m_Text = value
End Set
End Property
Private m_Url As String
Public Property Url() As String
Get
Return m_Url
End Get
Set(ByVal value As String)
m_Url = value
End Set
End Property
End Class
끝 네임 스페이스
그런 다음 내 페이지 코드는 다음과 같습니다.
<%@ Page Language="VB" AutoEventWireup="false" Inherits="MySite.MyPage" Title="My Page" Codebehind="MyPage.aspx.vb" %>
<%@ Register TagPrefix="my" Namespace="MySite.Controls" Assembly="MySite" %>
<my:BreadCrumbs ID="breadcrumbs" runat="server">
<Items>
<my:BreadCrumbItem Text="Another page" Url="AnotherPage.aspx" />
</Items>
</my:BreadCrumbs>
최종 HTML 마크 업 목표는 무엇입니까? 같은 뭔가 :
예, 내가 뱉어내는 HTML은 ul/li입니다. asp : ListItem에 대한 필요성이 없습니다. 질문을 할 때 그 밖에 무엇을 부르는지 알 수 없었습니다. – slolife