1

リストオブジェクトがあります

List<Documents>

、そしてその中に私はアカウントの別のリストリストを持っています。

List<Accounts>

コードビハインドからリストをリピーターコントロールに接続します

rptDocumentListings.DataSource = List<Documents>;
rptDocumentListings.DataBind();

リピーターがリスト内の各アイテムをループしている間、アカウントの各ネストリストもループして、
タグを付けてレンダリングしたいと思います。これが私がこれまでに試したことです:

//in the dataRepeater
<%# parseAccountNumbers(Eval("Accounts"))%>

//method in codebehind
public string parseAccountNumbers(List<Account> accounts)
    {
        string allAccounts = string.Empty;

        foreach (var item in accounts)
        {
            allAccounts += string.Format("{0}<br />", item.AccountNumber);
        }

        return allAccounts;
    }

私が得るエラーは、「オブジェクト」から「System.Collections.List」に変換できません。誰かが私を正しい方向に向けることができますか?前もって感謝します。

4

2 に答える 2

5

変化する

<%# parseAccountNumbers(Eval("Accounts"))%>

<%# parseAccountNumbers((List<Account>)Eval("Accounts"))%>

DataBinder.Evalはを返し、Objectメソッドはを期待しList<Account>ます。

于 2012-04-09T16:45:48.320 に答える
1

別のアイデア:クラスparseAccountNumbers(...)内に(可能であれば)パブリックプロパティを作成する代わりに、次のようにします。Documents

public string AccountNumbers
{
    return Accounts.Aggregate("", (current, account) => current + (account.AccountNumber + "<br/>"));       
}

次のようなデータフィールドとして使用します。

<asp:Boundfield DataField="AccountNumbers" HeaderText="Account#" />
于 2012-04-09T16:50:27.667 に答える