Создание повторителя с помощью BLL
Вопрос
Я пытаюсь создать контроль повторителя, связанный с данными моей базы данных. Это должно быть использовано с BLL. Но я не знаю, что я должен сделать.
Я надеюсь, что кто-то может помочь мне с этим ..
Код, который я использовал в 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
Код, который я использовал в странице.aspx:
<asp:PlaceHolder ID="plcRepeater" runat="server">
<asp:Repeater ID="rptRepeater" runat="server">
<ItemTemplate>
<ul>
<li></li>
</ul>
</ItemTemplate>
</asp:Repeater>
</asp:PlaceHolder>
Решение
Вам необходимо ссылаться на ваши данные на Datafields на ItemTemplate, используя Databilder.eval метод.
Что-то типа...
<ItemTemplate>
<ul>
<li><% DataBinder.Eval(rpt.DataSource, "FieldName")%></li>
</ul>
</ItemTemplate>
Другие советы
Вы перезаписываете свой повторитель с нулевой ссылкой:
Dim rptRepeater As Repeater = Nothing
Вы не должны делать это - удалите эту линию, и вещи должны работать, как ожидалось.
Кроме того, вы должны быть обязательными коллекция к повторителю и использовать Выражения связывания данных Для отображения данных в самом повторении.
Не зная больше о вашей модели данных, я не могу дать вам лучший ответ.