我正试着把一个List<AreaField>绑定到一个中继器上.我已经使用ToArray()方法将列表转换为一个数组,现在有了一个AreaField[]的数组

这是我的班级 struct

public class AreaFields
{
    public List<Fields> Fields { set; get; }
}

public class Fields
{
    public string Name { set; get; }
    public string Value {set; get; }
}

在aspx中,我想将其绑定为一个中继器(类似这样的东西)

DataBinder.Eval(Container.DataItem, "MyAreaFieldName1")

MyAreaFieldName1是AreaFieldItem类中Name属性的值.

推荐答案

您可能需要创建一个子中继器.

<asp:Repeater ID="SubRepeater" runat="server" DataSource='<%# Eval("Fields") %>'>
  <ItemTemplate>
    <span><%# Eval("Name") %></span>
  </ItemTemplate>
</asp:Repeater>

你也可以投你的场

<%# ((ArrayFields)Container.DataItem).Fields[0].Name %>

最后,你可以做一个小小的CSV函数,用一个函数写出你的字段

<%# GetAsCsv(((ArrayFields)Container.DataItem).Fields) %>

public string GetAsCsv(IEnumerable<Fields> fields)
{
  var builder = new StringBuilder();
  foreach(var f in fields)
  {
    builder.Append(f);
    builder.Append(",");
  }
  builder.Remove(builder.Length - 1);
  return builder.ToString();
}

Asp.net相关问答推荐

IIS 中的嵌套 ASP.NET应用程序继承父配置值?

如何删除字符串的定义部分?

ASP MVC 授权除少数之外的所有操作

System.Net.Http 版本冲突导致构建警告

如果站点在 localhost 或 127.0.0.1 上运行,如何判断 ASP.NET MVC 视图

asp.net mvc 中的 RedirectToAction 用法

无法让嵌套在 UpdatePanel 中的 WebControl 中的 ScriptManager.RegisterStartupScript 工作

如何以编程方式获取会话 cookie 名称?

UseSqlServer 方法缺少 MVC 6

我应该如何在类和应用层之间传递数据?

带有邮箱地址参数的 WebApi 方法从 HttpClient 返回 404

为什么aspx文件会返回404(找不到页面)

页面在谷歌浏览器中加载两次

使下拉列表项不可 Select

DropDownList AppendDataBoundItems(第一项为空白且无重复项)

svg 无法在 localhost 上的 IIS 网络服务器上运行

为在 ASP.NET Web API 中使用 User.Identity.Name 的方法编写单元测试

如何response.write bytearray?

在 Asp.Net MVC 5 中获取登录用户的用户 ID

如何使用实体框架执行原始 SQL 查询而无需使用模型?