我正在使用.Net 4.5,模型绑定,目前有一个转发器,其中包含另一个转发器。
<asp:Repeater ID="rptADivisions" runat="server" ItemType="abc.Division" SelectMethod="rptADivisions_GetData">
<ItemTemplate>
<div>
<%#: Item.DivisionName %>
<asp:Repeater ID="rptDOfficials" runat="server" ItemType="abc.DOfficial" SelectMethod="rptDOfficials_GetData">
<ItemTemplate>
<blockquote>
<p><%#: Item.FullName %></p>
<small><%#: Item.Position %></small>
</blockquote>
</ItemTemplate>
</asp:Repeater>
<hr />
</div>
</ItemTemplate>
</asp:Repeater>
我能够填充第一个中继器(rptADivisions),但是如何让第二个中继器工作?我需要让第二个访问Did,它包含在顶部中继器(rptADivisions)Item(abc.Divison)中。我已经尝试将第二个转发器的SelectMethod设置为
public IEnumerable<abc.DOfficial> rptDOfficials_GetData([Control("rptADivisions")] string DidFilter)
但这似乎不起作用,DidFilter总是设置为null。
答案 0 :(得分:0)
我手边还没有VS,但是像大多数数据绑定控件一样,转发器应该具有类似DataBound或RowDataBound事件的东西,你可以挂钩,并且当一行绑定到数据源的对应部分时能够执行某些代码。
在这种情况下,您应该能够编写c#代码来访问转发器(FindControl(“rptDOfficials”))并获取您实际绑定到的项目。拥有这两个将允许您构建一组项目并通过调用
以声明方式绑定.DataSource = your set of items
.DataBind()
至少这是嵌套数据网格,列表视图的方式,我希望这也适用于转发器。