在工具提示中显示动态名称列表

时间:2013-09-28 22:17:14

标签: c# asp.net

我在gridview中有以下代码段:

<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>

对收件人进行计数的数据绑定标记可以正常工作。当我将第二个绑定标记添加到工具提示时,工具提示显示Share.Service.Person []。

我的最终目标是让工具提示显示逗号分隔的收件人名称列表。

感谢任何帮助。

1 个答案:

答案 0 :(得分: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));
    }
}

数据绑定表达式不支持复杂的lambda表达式(afaik)。

Codebehind也更具可读性,可维护性并且不易出错。