C#でリピーターのネスト方法を使用する方法を教えてください

C# では、Repeaterコントロールを使ってメソッドをネストすることができます。以下は、Repeaterがメソッドをネストしている例です。

まず、ページに Repeater コントロールを追加し、その DataSource プロパティをコレクションまたはデータ ソースに設定します。

<asp:Repeater ID="outerRepeater" runat="server" OnItemDataBound="outerRepeater_ItemDataBound">
    <ItemTemplate>
        <!-- Outer Repeater Content -->
        <asp:Repeater ID="innerRepeater" runat="server" OnItemDataBound="innerRepeater_ItemDataBound">
            <ItemTemplate>
                <!-- Inner Repeater Content -->
            </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

ページのコードのクライアント側で、次のイベントハンドラーを記述してRepeaterコントロールにバインドしてデータを取り込むことができます:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // 绑定外部Repeater的数据源
        outerRepeater.DataSource = GetOuterData();
        outerRepeater.DataBind();
    }
}

protected List<OuterData> GetOuterData()
{
    // 返回外部Repeater的数据源
    // 这里可以从数据库或其他数据源获取数据
    List<OuterData> data = new List<OuterData>();
    // 添加外部Repeater的数据项
    // ...

    return data;
}

protected void outerRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        // 获取当前外部Repeater的数据项
        OuterData outerData = (OuterData)e.Item.DataItem;
        // 获取内部Repeater控件
        Repeater innerRepeater = (Repeater)e.Item.FindControl("innerRepeater");
        // 绑定内部Repeater的数据源
        innerRepeater.DataSource = GetInnerData(outerData);
        innerRepeater.DataBind();
    }
}

protected List<InnerData> GetInnerData(OuterData outerData)
{
    // 返回内部Repeater的数据源
    // 这里可以根据外部Repeater的数据项,从数据库或其他数据源获取数据
    List<InnerData> data = new List<InnerData>();
    // 添加内部Repeater的数据项
    // ...

    return data;
}

protected void innerRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        // 获取当前内部Repeater的数据项
        InnerData innerData = (InnerData)e.Item.DataItem;
        // 填充内部Repeater的内容
        // ...
    }
}

GetOuterData()メソッドはOuterRepeaterのデータソースを返し、GetInnerData(OuterData outerData)メソッドはInnerRepeaterのデータソースを返す。OuterRepeaterのItemDataBoundイベントハンドラでは、e.Item.FindControl(“innerRepeater”)メソッドによりInnerRepeaterコントロールにアクセスし、適切なデータソースをバインドする。InnerRepeaterのItemDataBoundイベントハンドラでは、InnerRepeaterの内容へデータの格納を行うことができます。

実際には具体的なニーズに応じて適切に変更が必要になる可能性があるため、上記の例は Repeater の入れ子の基本的な使用方法を示すためだけのものです。

bannerAds