2012-08-08 37 views
3

我有一个Report类。报告数据使用中继器控件呈现。有一个部门清单(字符串的通用清单)以逗号分隔显示。我们可以使用Eval将它作为中继器中的逗号分隔列表吗?如果我们不能使用Eval,那么在中继器中是否还有其他语法?使用Eval从通用列表创建逗号分隔字符串

public class Report 
{ 
    public int ReportID { get; set; } 
    public string Title { get; set; } 
    public string Recipients { get; set; } 
    public string Frequency { get; set; } 
    public List<string> DepartmentList { get; set; } 

} 

ASP.NET标记

<asp:Repeater ID="rptReports" runat="server"> 
        <HeaderTemplate> 
         <div> 
         </div> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <div class="repeaterIdentifier"> 
          <div class="reportTitle"> 
           <%# Eval("Title") +":" %> 
          </div> 
          <div class="reportFrequency"> 
           <%# " Frequency - "+ Eval("Frequency") %> 
          </div> 
         </div> 
         <div class="reportContent"> 
          <div class="repeaterLine"> 
           <%# Eval("Recipients")%></div> 
         </div> 
        </ItemTemplate> 
       </asp:Repeater> 

回答

4

您可以使用

<%#String.Join(",",((Report)Container.DataItem).DepartmentList)%> 
+0

帮我这么much.thank你。 – 2017-01-09 23:19:20

1

在你Report类,你可能需要添加额外的属性

public string DepartmentListCommas 
{ 
    get 
    { 
    return string.Join(", ", DepartmentList); 
    } 
} 
3

试试这个

<ItemTemplate> 
    <%# String.Join((List<string>)Eval("DepartmentList")).ToArray()) %> 
</ItemTemplate> 

注:代码没有测试

+0

这个答案对我的设置最有帮助。测试代码版本: '<%#String.Join(“,”,(List )DataBinder.Eval(Container.DataItem,“DepartmentList”))%>' – 2015-06-11 19:38:34