0

我想为 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(). 任何想法如何在数据绑定事件之前使其工作?

4

1 回答 1

1

它不能在数据绑定之前完成。在您将该转发器绑定到某物之前,它只是一个空壳,没有任何控件。绑定是创建页眉、页脚和项目的原因。

无论如何,绑定会擦除与页脚有关的任何内容,因此,如果您打算绑定到该转发器(以及为什么还要使用一个?),那么在绑定之前尝试对其进行操作是没有意义的。

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

于 2012-09-12T21:44:28.880 回答