0

アイテム テンプレート ラベルに動的データを読み込むグリッドビューがあります。最終的な目標は、グリッドビューに読み込まれるすべてのメッセージに対して、受信者の数を含む「受信者」という列があります。そのメッセージのすべての受信者の名前のリストを表示するツールチップが必要です。ツールチップ用に取得したいデータは、別のリスト内のリストにあります。次のデータ バインディング タグを使用しようとしています。

<asp:Label ID="lblRecipients" runat="server" Text="recipients" ToolTip='<%# Eval("Recipients.fullName") %>'></asp:Label>

受信者がこのオブジェクト内のリストである場合:

[DataContract]
public class Message
{
    [DataMember]
    public string MsgId { get; set; }
    [DataMember]
    public string Title { get; set; }
    [DataMember]
    public string Description { get; set; }
    [DataMember]
    public string MsgSize { get; set; }
    [DataMember]
    public string DateRecorded { get; set; }
    [DataMember]
    public string FileName { get; set; }
    [DataMember]
    public string ActiveDate { get; set; }
    [DataMember]
    public decimal RecordTime { get; set; }
    [DataMember]
    public long Filelength { get; set; }
    [DataMember]
    public string Person { get; set; }
    [DataMember]
    public List<Person> Recipients { get; set; }
    [DataMember]
    public int RecipientCount { get; set; }
}

デバッグすると、評価で次のメッセージが表示されます。

HttpException was unhandled by user code.

DataBinding: 'Share.Service.Person[]' does not contain a property with the name 'FullName'.

WCF テスト クライアントを実行すると、その時点で、各 Person オブジェクトの FullName プロパティに受信者の名前が設定されていることがわかります。現時点では、この課題にどのように取り組むべきか、私にはよくわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

このようにデータをバインドできるかどうかわかりません。メッセージは正しいです。受信者に "FullName" のプロパティはありません (Person[])

次のような書式設定機能はどうですか

protected string GetFullNames(List<Person> persons) {
    // do whatever you want and return the formatted string
}

次に、ツールチップをその関数出力にバインドしますか?

<asp:Label ID="lblRecipients" runat="server" Text="recipients" ToolTip='<%= GetFullNames(Recipients) %>'></asp:Label>
于 2013-09-29T23:57:11.193 に答える