0

我正在尝试开发一些用户论坛类型的页面。我有一个数据列表,其中绑定了主要论坛主题。它的工作。现在我需要在特定主题下方显示回复或建议(数据列表中的特定行)。它将是这样的

数据列表

话题一

回复 1

回复 2

回复 3

主题 2

回复 1

回复 2

回复 3

像这样 。

我已将主题绑定在 datalist 中。主题的表名是 alltopics。对任何主题的回复都存储在另一个名为 tblreply 的表中。我已经绑定了 datalist 中的主题。但不知道如何做另一部分。谁能帮我吗

这是我用于数据列表的代码

       Sub binddata5()
                    Dim mycommand As New SqlCommand("SELECT * from alltopics", con)

        con.Open()
        topics.DataSource = mycommand.ExecuteReader
        topics.DataBind()
        con.Close()

数据表设计

         <asp:DataList ID="topics" runat="server" DataKeyField="id" 
              RepeatColumns="1">
                 <ItemTemplate>
                 <div>&nbsp&nbsp<strong><asp:Label
                      ID="detail" runat="server" Text='<%#Container.DataItem("topicdetails")%>'></asp:Label></strong>&nbsp&nbsp on &nbsp&nbsp<asp:Label ID="date" runat="server" Text='<%#Container.DataItem("ondate")%>'></asp:Label></td></tr>
                    </div>

                          </ItemTemplate>
                 </asp:DataList>
4

1 回答 1

0

HTML 标记

<div>
    <asp:DataList ID="DataList1" runat="server" DataKeyField="bill_id" 
        DataSourceID="SqlDataSource1" OnItemDataBound="loaditems">
        <ItemTemplate>
            bill_id:
            <asp:Label ID="bill_idLabel" runat="server" Text='<%# Eval("bill_id") %>' />
            <br />
            bill_date:
            <asp:Label ID="bill_dateLabel" runat="server" Text='<%# Eval("bill_date") %>' />
            <br />
            bill_del_date:
            <asp:Label ID="bill_del_dateLabel" runat="server" 
                Text='<%# Eval("bill_del_date") %>' />
            <br />
            bill_pat_id:
            <asp:Label ID="bill_pat_idLabel" runat="server" 
                Text='<%# Eval("bill_pat_id") %>' />
            <br />
            <asp:DataList ID="DataList2" runat="server" DataKeyField="test_id">
                <ItemTemplate>
                    test_id:
                    <asp:Label ID="test_idLabel" runat="server" Text='<%# Eval("test_id") %>' />
                    <br />
                    <br />
                </ItemTemplate>
            </asp:DataList>
            <br />
        </ItemTemplate>
    </asp:DataList>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:Diagnosticsql %>" 
        SelectCommand="SELECT * FROM [BILL]"></asp:SqlDataSource>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:Diagnosticsql %>"             
        SelectCommand="SELECT * FROM [TEST] WHERE ([test_bill_id] like @test_bill_id)">
        <SelectParameters>
            <asp:Parameter Name="test_bill_id" Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>
</div>  

背后的代码

Protected Sub loaditems(ByVal sender As Object, ByVal e As DataListItemEventArgs) Handles DataList1.ItemDataBound
    If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then
        Dim billidlabel As Label = CType(e.Item.FindControl("bill_idLabel"), Label)
        Dim servicelist As DataList = CType(e.Item.FindControl("DataList2"), DataList)
        Me.SqlDataSource2.SelectParameters("test_bill_id").DefaultValue = billidlabel.Text
        servicelist.DataSourceID = SqlDataSource2.ID
    End If
End Sub
于 2012-05-06T17:46:45.230 回答