Creazione di un ripetitore utilizzando BLL
Domanda
Sto cercando di creare un controllo ripetitore legato con i dati del mio database. Questo dovrebbe essere l'uso con un BLL. Ma io non so cosa devo fare.
Spero che qualcuno mi può aiutare con questo ..
Il codice che ho utilizzato nel page.aspx.vb è:
Public Function showRepeater()
Try
' 1 - BLL
Dim BLLVragenRepeater As New VraagBLL
' 2 - Getting all topics
Dim alleVragenRepeater As Dataset.tblVragenDataTable
alleVragenRepeater = BLLVragenRepeater.getVraagByTopicId(5)
' 3 - creating repeater and binding with data
Dim rptRepeater As Repeater = Nothing
rptRepeater.DataSource = BLLVragenRepeater.getVraagByTopicId(5)
rptRepeater.DataBind()
' 4 - show repeater in placeholder
plcRepeater.Controls.Add(rptRepeater)
Catch ex As Exception
lblFeedback.Text = ex.Message
End Try
End Function
Il codice che ho utilizzato nel Page.aspx è:
<asp:PlaceHolder ID="plcRepeater" runat="server">
<asp:Repeater ID="rptRepeater" runat="server">
<ItemTemplate>
<ul>
<li></li>
</ul>
</ItemTemplate>
</asp:Repeater>
</asp:PlaceHolder>
Soluzione
È necessario fare riferimento i vostri DataFields nel ItemTemplate utilizzando il Metodo DataBinder.Eval .
Qualcosa di simile ...
<ItemTemplate>
<ul>
<li><% DataBinder.Eval(rpt.DataSource, "FieldName")%></li>
</ul>
</ItemTemplate>
Altri suggerimenti
si sovrascrive il ripetitore con un riferimento null:
Dim rptRepeater As Repeater = Nothing
Non si dovrebbe farlo -. Rimuovere quella linea e le cose dovrebbero funzionare come previsto
Inoltre, si dovrebbe essere vincolante un raccolta ??em> per il ripetitore e l'uso dati espressioni vincolanti al fine di visualizzare i dati del ripetitore stesso.
Senza sapere di più sul vostro modello di dati, non posso dare una risposta migliore.