在asp.repeater中找到FooterTemplate

时间:2012-09-12 13:44:08

标签: asp.net vb.net repeater asprepeater

我想给asp.net转发器页脚模板中的控件赋值。

Dim FooterTemplate As Control = TicketRepeater.Controls(TicketRepeater.Controls.Count - 1).Controls(0)
Dim lblFooter As Literal = TryCast(FooterTemplate.FindControl("TicketTotalNumberOfTickets"), Literal)
lblFooter.Text = TicketDataTable.Rows.Count.ToString()

返回错误:

Specified argument was out of the range of valid values.
Parameter name: index

AFAIU it cant find count of controls = no controls found?。有什么建议吗?

检查点:

  • 所有ID都正确
  • 中继器有3部分headertemplate, itemtemplate,footertemplate

帮助!

<小时/> 的更新

代码实际上在databind()之后工作。有关如何在数据绑定事件之前使其工作的任何想法吗?

1 个答案:

答案 0 :(得分:1)

在数据绑定之前无法完成。直到你将转发器绑定到某些东西,它只是一个空壳而没有控件。绑定是创建页眉,页脚和项目的原因。

无论如何,绑定会擦掉与页脚有关的任何内容,所以如果你打算绑定到那个中继器(为什么还要使用一个?),在绑定它之前尝试操作它是没有意义的。

如果你想要的是一个带有页眉和页脚的空转发器以及稍后(可能在用户执行某些操作后)绑定到填充的数据源,则可以尝试绑定到空(但不是空)数据源。我不是百分百肯定,但我认为这应该在你的转发器中产生页眉和页脚,但没有项目。