Sto cercando di creare un controllo utente/server che verrà creato con qualcosa come il seguente:Come creare il controllo utente/server ASP.NET che utilizza un elenco di asp: ListItem come controlli figlio?
<my:MyListControl runat="server">
<asp:ListItem Text="Test1" Value="Test1" />
<asp:ListItem Text="Test2" Value="Test2" />
</my:MyListControl>
io sono solo alla ricerca di un nuovo inizio qui: articoli o esempi di codice.
Quale classe di base devo ereditare da? Cosa sovrascrivere?
Possibilmente come personalizzare quali elementi secondari accetta il mio controllo (my: ListItem anziché asp: ListItem).
Quello che sto cercando di fare è creare un controllo della briciola di pane molto semplice per una piccola sezione del mio sito. Ho tutto ciò che funziona con controlli ASP.NET di serie, ma gli articoli sono aggiunti nel codice, il che significa che correggere un errore di ortografia o un bug di formattazione comporta una ricompilazione, che non è l'ideale.
EDIT:
Ecco il mio codice con l'aggiunta di suggerimento di Josh di seguito:
Namespace MySite.Controls pangrattato classe parziale riceve 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
End Namespace
Poi il mio codice di pagina assomiglia a questo:
<%@ 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>
Qual è l'obiettivo di markup HTML finale? Qualcosa di simile:
Sì, l'HTML che sto trasmettendo è ul/li. Non c'è bisogno di asp: ListItem, semplicemente non sapevo cos'altro chiamarlo quando ho posto la domanda – slolife