题
我正在尝试创建一个带有数据库数据的中继器控件。这应该与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
我在页面上使用的代码是:
<asp:PlaceHolder ID="plcRepeater" runat="server">
<asp:Repeater ID="rptRepeater" runat="server">
<ItemTemplate>
<ul>
<li></li>
</ul>
</ItemTemplate>
</asp:Repeater>
</asp:PlaceHolder>
解决方案
您需要使用该数据字段在ItemTemplate中使用 databinder.eval方法.
就像是...
<ItemTemplate>
<ul>
<li><% DataBinder.Eval(rpt.DataSource, "FieldName")%></li>
</ul>
</ItemTemplate>
其他提示
您正在用无用的参考来覆盖中继器:
Dim rptRepeater As Repeater = Nothing
您不应该这样做 - 删除该行,事情应该按预期工作。
此外,您应该约束 收藏 到中继器并使用 数据绑定表达式 为了在中继器本身中显示数据。
在不了解您的数据模型的情况下,我无法给您更好的答案。
不隶属于 StackOverflow