首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从内部转发器获取外部转发器项目

从内部转发器获取外部转发器项目
EN

Stack Overflow用户
提问于 2011-06-30 05:38:17
回答 2查看 1.7K关注 0票数 1

如何从内部中继器获取外部中继器项。我的外部中继器数据源有3个项目。我的内部中继器数据源有7个项目。当我在内部中继器中迭代时,如何从外部中继器中获取项?

我的外部中继器数据源是一个通用列表。此列表中的一项是日期(数字格式)。我的内部中继器是一个int列表,在这个列表中从1到7。我需要一些逻辑,以便当我迭代日期列表(在内部).....if时,外部的值在当前记录的被迭代(所以有一个匹配)上的值为2,我打印一些东西。

我希望这是合理的..。

感谢您提供的任何帮助或提示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-30 05:41:33

我通常所做的只是在数据绑定上捕获外部项,并将其保存到页面上的变量中。这里我有两个连续的中继器。我保存了第一个中继器中的年份,然后可以在绑定第二个中继器时引用它。

代码语言:javascript
运行
复制
    protected void repAnnualReport_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        CurrentYear = int.Parse(((Literal)e.Item.FindControl("litLicenseYear")).Text);

        Repeater repLicenseLengths = (Repeater)e.Item.FindControl("repLicenseLengths");
        repLicenseLengths.DataSource = GetLicenseLengths(CurrentYear);
        repLicenseLengths.DataBind();
    }

    protected void repLicenseLengths_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        CurrentLength = int.Parse(((Literal)e.Item.FindControl("litLicenseLength")).Text) * 365;

        Repeater repMonthlyReport = (Repeater)e.Item.FindControl("repMonthlyReport");
        repMonthlyReport.DataSource = new object[12];
        repMonthlyReport.DataBind();
    }

如果您绑定到第一个中继器的内容是一个类列表或可查询的,则可以在第一行中访问单个项。

代码语言:javascript
运行
复制
SaveCurrentItem = (CurrentItemClass)e.Item.DataItem;
票数 2
EN

Stack Overflow用户

发布于 2011-06-30 06:27:43

如果您知道从内部中继器到外部中继器的.net控件的层次结构,则可以使用NamingContainer属性查找向上的方法。

代码语言:javascript
运行
复制
    protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {

            Repeater parentRepeater;

            // e.Item: the item/header/whatever template that kicked off this event
            // e.Item.NamingContainer: the owner of the item template (the innner repeater)
            // e.Item.NamingContainer.NamingContainer: the outer item template
            // e.Item.NamingContainer.NamingContainer.NamingContainer: the outer Repeater

            parentRepeater = (Repeater)e.Item.NamingContainer.NamingContainer.NamingContainer;

        }
    }

否则,如果您不确定结构或不想要像这样的固定引用,您可以循环遍历NamingContainer,直到第二次遇到Repeater类型的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6527581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档