0

グリッドビューに次のコード スニペットがあります。

<ItemTemplate>
<asp:Label
    ID="lblRecipientsCount"
    runat="server"
    Text='<%#String.Join(",",((Share.Service.Message)Container.DataItem).Recipients.Count()) %>'
    ToolTip='<%#String.Join(","((Share.Service.Message)Container.DataItem).Recipients.ToString()) %>'>
</asp:Label>
</ItemTemplate>

受信者をカウントする data-bind タグは正常に機能します。2 つ目のバインド タグをツール ヒントに追加すると、ツール ヒントに Share.Service.Person[] が表示されます。

私の最終的な目標は、ツール ヒントに受信者名のコンマ区切りリストを表示することです。

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

4

1 に答える 1

0

私は単に使用しますRowDataBound

protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        var message = (Share.Service.Message)e.Row.DataItem;
        var lblRecipientsCount = (Label)e.Row.FindControl("lblRecipientsCount");
        lblRecipientsCount.Text = message.Recipients.Count();
        lblRecipientsCount.ToolTip = string.Join(",", message.Recipients.Select(rec => rec.Name));
    }
}

データバインディング式は、複雑なラムダ式をサポートしていません(afaik)。

コードビハインドは、より読みやすく、保守しやすく、エラーが発生しにくくなります。

于 2013-09-28T22:25:45.180 に答える