【问题标题】:Why is a label only accessible through the repeaters OnItemDataBound event?为什么标签只能通过转发器 OnItemDataBound 事件访问?
【发布时间】:2009-07-30 20:58:46
【问题描述】:

如果我在转发器的 itemtemplate 中有一个标签,如果我尝试通过 repeater.Items[0].FindControl("label") 访问它,则该标签为空。事实上,即使我有 1 个项目模板,项目也是 0。直到我使用 OnItemDataBound 事件,我才能通过 e 参数找到控件。我很好奇为什么我需要使用 OnItemDataBound 事件而不仅仅是使用 repeater.Items[0].FindControl("label")。有人可以解释一下吗?

【问题讨论】:

    标签: c# asp.net repeater


    【解决方案1】:

    当您为转发器创建模板时,您只是告诉转发器您想在执行时插入什么 - 这些控件的初始化方式与它们不属于模板时的方式不同。

    模板中的控件是在转发器绑定数据时创建的,因此,在转发器生命周期的那个点之前,您将无法访问它们。

    【讨论】:

    • 这解释了为什么如果我在中继器中执行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2013-05-16
    • 2012-10-16
    • 1970-01-01
    • 2013-11-15
    • 2018-11-14
    相关资源
    最近更新 更多