【问题标题】:How do you iterate through a list that is set in code behind?你如何遍历在代码后面设置的列表?
【发布时间】:2019-08-08 21:40:37
【问题描述】:

我需要遍历一个 aspx 网页上的列表。它是在后面的代码中填充的对象的一部分。该对象的所有其他属性都是字符串,我可以像这样访问它们:

<td align="center"><%# Eval("PartNumber") %></td>

<td align="center"><%# Eval("ContractNumber") %></td>

我试图对列表执行以下操作:

<% List<PeriodData> periodValues = (List<PeriodData>)Eval("PeriodValues");
   foreach (var period in periodValues)
   {
       Response.Write("<td align='center'>");
       period.ETC.ToString("#,0.#");
       Response.Write("</td>");
   }
%>

我收到此错误:Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用。

有没有办法做到这一点?

【问题讨论】:

  • 我会在页面上放一个转发器,然后在后面的代码中将您的列表绑定到它。
  • 这使得前两个看起来像是某些转发器或其他数据绑定控件的一部分,但第三个不是。那就是问题所在。 Eval 指的是绑定到控件的底层项。但是,如果您在数据绑定控件之外使用它,则没有可引用的项目。

标签: c# asp.net list code-behind


【解决方案1】:

我最终使用 StringBuilder 在后面的代码中创建了整个报告表,并将标签的文本字段设置为构建的字符串。不是最优雅的解决方案,也不是我想要的处理方式,但是,嘿,它有效。

【讨论】:

    猜你喜欢
    • 2022-06-18
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    相关资源
    最近更新 更多