【问题标题】:how to handle List object inside an object?如何处理对象内部的 List 对象?
【发布时间】:2013-02-26 15:56:42
【问题描述】:

我有一堂课:

public class Kit
{
    private int _CK_ID = 0;
    private String _CK_Title = "";
    private String _CK_Description = "";

    public int CK_ID
    {
        get { return _CK_ID; }
        set { _CK_ID = value; }
    }

    public String CK_Title
    {
        get { return _CK_Title; }
        set { _CK_Title = value; }
    }

    public String CK_Description
    {
        get { return _CK_Description; }
        set { _CK_Description = value; }
    }

}

每个套件都可以有一个图像列表。

在类里面放一个List<Images>是不是很聪明?

如果是,当我将List<Kit> 绑定到Repeater 以调用其他属性时,如何调用图像?例如,我使用<%# Eval("CK_Title")%>。如何循环所有图像?

【问题讨论】:

  • 您可以使用转发器的ItemDataBound 事件将嵌套转发器与图像绑定。您只需将e.Item.DataItem 转换为Kit

标签: c# asp.net oop


【解决方案1】:

我不确定我是否完全理解你,这似乎很简单:定义一个 List 并公开属性:

private List<SomeType> underlyingSomeList;

public List<SomeType> SomeList { get { return underlyingList; } }

至于访问条目,您可以将属性本身绑定到 Repeater 并在 ItemDataBound 事件处理程序中使用 var thing = e.Item.DataItem as SomeThing 获取单个事物,然后从那里使用 FindControl 访问元素并填充项目的数据。

【讨论】:

    【解决方案2】:

    在您的转发器中嵌套另一个转发器,并在ItemDataBound 事件上将List 对象绑定到它。

    中继器示例

    <asp:repeater id="rep" runat="server">
       <itemtemplate>
          <h2><%# Eval("CK_Title")%></h2>
          <asp:repeater id="imagerep" runat="server">
             <itemtemplate>
                 <img src="<%# Eval("URL")%>" />
             </itemtemplate>
          </asp:repeater>
       </itemtemplate>
    </asp:repeater>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 2014-02-28
      • 1970-01-01
      相关资源
      最近更新 更多