2012-05-06 5 views
0

Я пытаюсь разработать страницу типа пользовательского форума. где у меня есть datalist, в котором основные темы форума привязаны. работает. Теперь мне нужно, чтобы отобразить отвечено или suggetion на чуть ниже определенной теме (конкретной строке внутри DataList) .Он будет как этототображает некоторые подписи рядов datalist внутри datalist

DataList

тему 1

ответ 1

ответ 2

ответ 3

тема 2

ответ 1

ответ 2

ответ 3

как это.

Я связал темы в datalist. Tablename для тем - alltopics. ответы на любые темы хранятся в другой таблице с именем tblreply. Я связал темы в datalist. но не знаю, как сделать другую часть. может кто-нибудь помочь мне

это код, который я использовал для DataList

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

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

дизайн DataList

  <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> 
+0

Я могу предложить вам сделать то же самое, используя listview внутри gridview. Но не знаю, будет ли этот трюк работать для datalist. Если вы согласитесь, я отправлю свой код. –

+0

Это будет выглядеть как [Нажмите здесь, чтобы посмотреть] (http://i.stack.imgur.com/Ux0AC.png) –

+0

@KrishanuВы можете опубликовать свой код. – biplob

ответ

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 
+0

Если вам нужны дополнительные пояснения, пожалуйста, сообщите мне. –

Смежные вопросы