0

我正在写出分解为年份和月份的链接列表,如下所示:

<ul>
  <li>2012</li>
  <ul>
    <li>July (12)</li>
    <li>June (8)<li>
    (etc)
  </ul>
  <li>2011</li>
    <li>July (7)</li>
    (etc)
  </li>
</ul>

我正在使用两个中继器,一个用于年(“repYears”)和一个用于月的嵌套中继器(“repMonths”)。在repYears 的ItemDataBound 事件期间,我对repMonths 进行数据绑定。数据来自这些对象的通用列表:

public class ArchiveItem
{
    public ArchiveItem(long Id, string Month, int Year)
    {
        PostId = Id;
        Month = Month;
        Year = Year;
    }

    public long PostId { get; set; }
    public string Month { get; set; }
    public int Year { get; set; }
}

到目前为止,我已经成功地写出了年份和月份。

我接下来需要做的是计算每月的项目数(即从上面的 HTML 中填充括号中的数字)。

为此(在 repMonths_ItemDataBound() 期间),我需要知道 repYears 中继器当前在哪一年。这将给我当前月份和当前年份,然后我可以从中计算出计数。

我可以轻松访问当前月份,因为我在 ItemDataBound 中,所以我可以使用 e.Item.DataItem。

那么如何从父中继器访问当前的 DataItem 值?

4

1 回答 1

3

我不确定我是否明白这一点,因为您没有显示代码。

如果您在子中继器中ItemDataBound并且需要获取对父项的引用,则DataItem可以使用该NamingContainer属性:

ItemDataBound子中继器中:

var repeater = (Repeater)sender;
var parentItem = (RepeaterItem)repeater.NamingContainer;
var parentDataItem = parentItem.DataItem;
于 2012-07-26T15:47:22.727 回答