我在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)
但它说我无法将控制转换为转发器。
如何做到这一点?
答案 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);