1

我正在尝试创建一个与我的数据库数据绑定的转发器控件。这应该与 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

我在 page.aspx 中使用的代码是:

<asp:PlaceHolder ID="plcRepeater" runat="server">
   <asp:Repeater ID="rptRepeater" runat="server">
     <ItemTemplate>
       <ul>
         <li></li>
       </ul>
     </ItemTemplate>
   </asp:Repeater>
 </asp:PlaceHolder>
4

2 回答 2

0

您正在使用空引用覆盖中继器:

Dim rptRepeater As Repeater = Nothing

你不应该这样做 - 删除那条线,事情应该按预期工作。

此外,您应该将集合绑定到转发器并使用数据绑定表达式以在转发器本身中显示数据。

在不了解您的数据模型的情况下,我无法给您更好的答案。

于 2010-12-12T17:13:29.287 回答
0

您需要使用DataBinder.Eval 方法在 ItemTemplate 中引用您的 DataFields 。
就像是...

            <ItemTemplate>      
                <ul>      
                    <li><% DataBinder.Eval(rpt.DataSource, "FieldName")%></li>      
                </ul>      
            </ItemTemplate> 
于 2010-12-12T17:23:39.490 回答