La creación de un repetidor usando BLL
Pregunta
Estoy intentando crear un repetidor de control atado con los datos de mi base de datos. Este debería ser el uso con un BLL. Pero no sé lo que tengo que hacer.
Espero que alguien me puede ayudar con esto ..
El código que se utiliza en la page.aspx.vb es:
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
El código que se utiliza en la Page.aspx es:
<asp:PlaceHolder ID="plcRepeater" runat="server">
<asp:Repeater ID="rptRepeater" runat="server">
<ItemTemplate>
<ul>
<li></li>
</ul>
</ItemTemplate>
</asp:Repeater>
</asp:PlaceHolder>
Solución
Es necesario hacer referencia a sus DataFields en el ItemTemplate utilizando el DataBinder.Eval Método .
Algo así como ...
<ItemTemplate>
<ul>
<li><% DataBinder.Eval(rpt.DataSource, "FieldName")%></li>
</ul>
</ItemTemplate>
Otros consejos
Está sobrescribiendo su repetidor con una referencia nula:
Dim rptRepeater As Repeater = Nothing
Usted no debe hacer eso -. Quitar esa línea y las cosas deberían funcionar como se esperaba
Además, debe ser vinculante para un colección para el repetidor y el uso expresiones de enlace de datos con el fin de mostrar los datos en el propio repetidor.
Sin saber más acerca de su modelo de datos, no puedo darle una mejor respuesta.