Création d'un répéteur en utilisant BLL
Question
Je suis en train de créer un contrôle répéteur lié avec les données de ma base de données. Cela devrait être utilisé avec une BLL. Mais je ne sais pas ce que je dois faire.
J'espère que quelqu'un peut me aider ..
Le code I utilisé dans le page.aspx.vb est:
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
Le code I utilisé dans le page.aspx est:
<asp:PlaceHolder ID="plcRepeater" runat="server">
<asp:Repeater ID="rptRepeater" runat="server">
<ItemTemplate>
<ul>
<li></li>
</ul>
</ItemTemplate>
</asp:Repeater>
</asp:PlaceHolder>
La solution
Vous devez référencer vos DataFields dans le ItemTemplate en utilisant le DataBinder.Eval Méthode .
Quelque chose comme ...
<ItemTemplate>
<ul>
<li><% DataBinder.Eval(rpt.DataSource, "FieldName")%></li>
</ul>
</ItemTemplate>
Autres conseils
Vous écrasez votre répéteur avec une référence null:
Dim rptRepeater As Repeater = Nothing
Vous ne devriez pas le faire -. Supprimer cette ligne et les choses devraient fonctionner comme prévu
En outre, vous devriez se lier à une collection au répéteur et de l'utilisation expressions de liaison de données pour les données d'affichage dans le répéteur lui-même.
Sans en savoir plus sur votre modèle de données, je ne peux pas vous donner une meilleure réponse.