我是ASP.net的全新新手
我的数据库模型在这里
如上图所示,我有一张表,它的名字是Tours,它有一个名为TourId的列。
我的Webform中有一个对象数据源,下面的代码是转发器:
<asp:ObjectDataSource ID="ODSTTitle" runat="server" SelectMethod="GetById" TypeName="ATourRep">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="0" Name="Id" QueryStringField="CID" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server">
</asp:ObjectDataSource>
<div class="container" id="TourDetail">
<asp:Repeater ID="RptTourDetail" runat="server" DataSourceID="ODSTTitle" ItemType="Tour" EnableViewState="false">
<ItemTemplate>
<li>
<div class="row">
<div class="col-md-3">
<%-- NestedRepeater --%>
<asp:Repeater ItemType="TourDate" ID="RptTourNested" runat="server" EnableViewState="false">
<ItemTemplate>
<h2>
<%-- What Should I write Here to have a list of each TourDate --%>
</h2>
</ItemTemplate>
</asp:Repeater>
</div>
<%-- This div works correctly --%>
<div class="col-md-6">
<h4>
<%# Item.TName %>
</h4>
<p>
<%# Item.TDes %>
</p>
</div>
</div>
</li>
</ItemTemplate>
</asp:Repeater>
</div>
As代码显示有一个嵌套的转发器,它有h2标签。我需要在h2标签中显示每个TourDates的列表。
我不知道如何绑定ObjectDataSource1以使用每个Tour的TourId,然后获取该巡视的StartDates。以及我应该在嵌套转发器的h2标签中写什么来显示该巡视的satrtdates ((每次巡演都有不止一个开始日期))
我在我的存储库中也有这个方法
public IQueryable<TourDate> GetById(int Id)
{
return model.TourDates.Where(e => e.TourId == Id);
}
我使用了ObjectDataSource的默认值,然后通过eval绑定它,但它起作用了。
你有什么建议或者我在结构方面是错的,或者你认为那里有嵌套的中继器吗?
答案 0 :(得分:1)
在父转发器中,您需要实现此处https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound%28v=vs.110%29.aspx指定的Repeater.ItemDataBound事件,然后在该事件内,您需要为每个项目(行)获取所需信息并将数据源发送到内部Repeater,然后调用其数据绑定功能。
答案 1 :(得分:1)