0

私は.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>

1 番目のリピーター (rptADivisions) を設定することはできますが、2 番目のリピーターを機能させるにはどうすればよいですか? 2 番目に、トップ リピーター (rptADivisions) アイテム (abc.Divison) に含まれる Did にアクセスできるようにする必要があります。2番目のリピーターのSelectMethodを次のように設定しようとしました

public IEnumerable<abc.DOfficial> rptDOfficials_GetData([Control("rptADivisions")] string DidFilter)

しかし、それはうまくいかないようです。DidFilter は常に null に設定されています。

4

1 に答える 1

0

私はVSを手元に持っていませんが、リピーターは、ほとんどのデータバインドされたコントロールと同様に、DataBoundまたはRowDataBoundイベントのようなものを持っている必要があり、行がデータソースから対応する行にバインドされたときにフックしてコードを実行できます。

イベントでは、C# コードを記述してリピーター (FindControl("rptDOfficials")) にアクセスし、実際にバインドする項目を取得できるはずです。これら 2 つを使用すると、アイテムのセットを構築し、呼び出して宣言的にバインドできます。

.DataSource = your set of items
.DataBind()

少なくともこれは、ネストされたデータグリッド、リストビューを行う方法です。これがリピーターでも機能することを願っています。

于 2013-05-08T20:00:56.327 に答える