2013-09-28 323 views
0

名的動態列表我在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 []。

我的最終目標是讓工具提示顯示逗號分隔的收件人姓名列表。

任何幫助表示讚賞。

回答

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表達式(據我所知)。

Codebehind也更具可讀性,可維護性並且不易出錯。

+0

On Count,我得到了:屬性'System.Array.Count'不能在這個上下文中使用,因爲get訪問器是不可訪問的。 –

+0

@Rex_C:如果是數組(編輯),則使用'Length'或'Count()'。 –

+0

現在,它在Select Select上拋出一個錯誤,並且它無法解析我的.Name屬性。 –