在ASP.NET中按字符串获取Repeater

时间:2011-07-01 20:32:51

标签: c# asp.net

我在aspx页面中有一堆中继器,如“repeater1”,“repeater2”等等

我想像

那样访问它们
for(int i = 0; i < 5; i++) 
   // get the repeater like FindRepeater("repeater"+i) and bind it

在Page_Load后面的代码中我尝试了

Repeater repeater = (Repeater)this.FindControl("repeater"+i)

但它说我无法将控制转换为转发器。

如何做到这一点?

2 个答案:

答案 0 :(得分:2)

我正在运行相同的代码(除了转换i tostring()),并且它的构建正常。你可以试试这个..

Repeater repeater = this.FindControl("repeater"+i.ToString()) as Repeater;

答案 1 :(得分:0)

如果您的页面使用母版页,则需要使用以下内容:

Repeater rptr = (Repeater)this.Master.FindControl("body").FindControl("repeater" + i);

其中body是ContentPlaceHolderId。此外,如果转发器位于用户控件内,则需要执行以下操作:

Repeater rptr = (Repeater)this.Master.FindControl("body").FindControl("MyUserControl").FindControl("repeater" + i);