SelectMethod从父控件获取数据

时间:2013-05-08 19:52:09

标签: asp.net asp.net-4.5

我正在使用.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。

1 个答案:

答案 0 :(得分:0)

我手边还没有VS,但是像大多数数据绑定控件一样,转发器应该具有类似DataBound或RowDataBound事件的东西,你可以挂钩,并且当一行绑定到数据源的对应部分时能够执行某些代码。

在这种情况下,您应该能够编写c#代码来访问转发器(FindControl(“rptDOfficials”))并获取您实际绑定到的项目。拥有这两个将允许您构建一组项目并通过调用

以声明方式绑定
.DataSource = your set of items
.DataBind()

至少这是嵌套数据网格,列表视图的方式,我希望这也适用于转发器。