我如何在Container.DataItem中使用foreach?

时间:2014-10-04 21:37:10

标签: c# asp.net

如何在Repeater ItemTemplate中使用它?

foreach(string tag in Eval("etiketler"))
{
    Response.Write("<a href='#'>"+tag+"</a");
}

3 个答案:

答案 0 :(得分:1)

<%#未使用foreachif或其他语言关键字。它主要用于数据绑定。

但你可以:

希望这有帮助

答案 1 :(得分:1)

没有办法以这种格式进行。你应该将 Dataitem 发送到一个静态方法,然后你应该返回包含你的标记的字符串..

public static string GetMarkup(object dataItem)
{
    var tags = DataBinder.Eval(dataItem, "etiketler"); // depend on etiketler type

    StringBuilder sb = new StringBuilder();
    foreach(string tag in tags) 
    { 
        sb.Append("<a href='#'>"+tag+"</a"); 
    }

    return sb.ToString();
}

使用这样的方法:

<%# GetMarkup(Container.DataItem) %>

答案 2 :(得分:0)

您还可以在ASP.NET中使用嵌套转发器

<asp:Repeater runat="server" ID="rpt1">
  <ItemTemplate>
     <asp:Repeater runat="server" ID ="rpt2" DataSource='<%# Eval("etiketler") %>'>
      <ItemTemplate>
        <%# Eval("tag") %>
     </ItemTemplate>
    </asp:Repeater>
  </ItemTemplate>
</asp:Repeater>