【问题标题】:Embedded for loop can't access the variables嵌入式for循环无法访问变量
【发布时间】:2014-01-15 05:08:38
【问题描述】:

我的代码存在嵌入式 for 循环无法访问变量的问题。我正在使用 C#。代码如下:

<%  List<ProductPacking> categoryList = new List<ProductPacking>();
                    categoryList = packBLL.getAllCategory();
                    foreach(ProductPacking cl in categoryList) { %>

                <!-- FIRST COLLAPSIBLE PANEL EXTENDER -->
                <asp:Panel ID="pHeader1" runat="server" CssClass="cpHeader">
                    <!-- First collapsible panel extender header -->
                    <div class="form-group" style="background-color: #ffb848; height: 30px; vertical-align: middle">
                        <div class="col-md-3">
                            <div style="float: left; color: White; padding: 5px 5px 0 0">
                                <%= cl.categoryName; %>
                            </div>

但是,在这一行:&lt;%= cl.categoryName; %&gt;,它告诉我名称 cl 在当前上下文中不存在。我想知道为什么会这样。

【问题讨论】:

标签: c# asp.net for-loop


【解决方案1】:

我认为在这种情况下关闭标签的方式是在要呈现的元素之前的每一端,尝试在要显示的 html 末尾关闭它并避免使用 asp 标签.

尝试类似的东西

<% 
   StringBuilder sb = new StringBuilder();
   List<ProductPacking> categoryList = new List<ProductPacking>();
   categoryList = packBLL.getAllCategory();
   foreach(ProductPacking cl in categoryList) { 
       sb.AppendFormat("<div>{0}</div>",cl.categoryName);
       //some more html here
   }
   response.write(sb.ToString());
%>

但我更喜欢使用网格或其他类似控件并自定义行模板以使我的生活更轻松

【讨论】:

  • 我想我会使用中继器和可折叠面板扩展器来做到这一点。感谢您的努力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
  • 1970-01-01
  • 2014-03-11
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多