Asp.net 如何使用where条件管理嵌套中继器?

Asp.net 如何使用where条件管理嵌套中继器?,asp.net,repeater,Asp.net,Repeater,我有嵌套的中继器。第一个中继器显示来自CityTable的CityName。第二个中继器将根据cityName显示来自另一个表的CityDetails 输出将如下所示 City1 Data1 Data2 City2 Data3 Data4 and so on. 我用了嵌套式中继器 <asp:Repeater ID="rp1" runat="server"> <ItemTemplate> <%# GetImageSource(

我有嵌套的中继器。第一个中继器显示来自CityTable的CityName。第二个中继器将根据cityName显示来自另一个表的CityDetails

输出将如下所示

City1

Data1
Data2

City2

Data3
Data4 and so on.
我用了嵌套式中继器

<asp:Repeater ID="rp1" runat="server">
        <ItemTemplate>
         <%# GetImageSource( Eval("CityName"))%>
            <asp:Repeater ID="rp2" runat="server" >
                <ItemTemplate>
                   <%#DataBinder.Eval(Container.DataItem, "DealHeadline")%>
                </ItemTemplate>
            </asp:Repeater>
        </ItemTemplate>
    </asp:Repeater>

现在我不明白如何显示第二个中继器数据了


也许这不是解决这个问题的正确方法。请给我建议正确的方法或任何解决方案。

我用以下方法解决了问题,希望能有所帮助:

Aspx代码:

  <asp:Repeater ID="CityRpt" runat="server"><ItemTemplate><li>
      <%# DataBinder.Eval(Container.DataItem, "City")%>

               <!-- start child repeater -->
              <ul class="subleveltwo">
              <asp:repeater id="BuildingRpt" datasource='<%# CType(Container.Dataitem,System.Data.DataRowView).Row.GetChildRows("RelationName") %>' runat="server">
                       <itemtemplate><li><%# DataBinder.Eval(Container.DataItem, "[""ColumnName""]")%><br></li></itemtemplate>
              </asp:repeater>
              </ul>
              <!-- end child repeater -->

      </li></ItemTemplate></asp:Repeater>
     </ul>
        <!-- end Parent repeater -->

  • Vb.Net代码:

     Dim propertyType As String = "Property_A"
    
        Dim ds As DataSet = MaxxDatabaseHelper.GetBuildingsByCity()
    
    
        'get distinct results into datatable
        Dim TableC As DataTable = (From myRow In ds.Tables(1).AsEnumerable()
            Where (myRow.Field(Of String)("Property_Type") = propertyType)
                           Select myRow).Distinct().CopyToDataTable()
        'add to dataset
        ds.Tables.Add(TableC)
    
        ds.Relations.Add("RelationName", ds.Tables(0).Columns("City"), ds.Tables(2).Columns("City"))
    
        If (ds IsNot Nothing Or ds.Tables(0).Rows.Count <> 0) Then
            CityRpt.DataSource = ds.Tables(0)
            'page bind 
            Page.DataBind()
        End If
    
    Dim propertyType As String=“Property\u A”
    Dim ds As DataSet=MaxxDatabaseHelper.GetBuildingByCity()
    '将不同的结果放入datatable
    Dim TableC As DataTable=(来自ds.Tables(1.AsEnumerable()中的myRow)
    其中(myRow.Field(字符串的)(“属性类型”)=propertyType)
    选择myRow).Distinct().CopyToDataTable()
    '添加到数据集
    ds.Tables.Add(表C)
    Add(“RelationName”,ds.Tables(0).列(“City”)、ds.Tables(2)列(“City”))
    如果(ds不是Nothing或ds.Tables(0.Rows.Count 0),则
    CityRpt.DataSource=ds.Tables(0)
    '页面绑定
    Page.DataBind()
    如果结束
    
    你能检查一下这个链接吗?请看一下这个类似的线程