我正在尝试在“for”循环中在转发器中获取标签,但我一直收到错误说:
“mscorlib.dll中发生了'System.ArgumentOutOfRangeException'类型的异常,但未在用户代码中处理
其他信息:指数超出范围。必须是非负面的 并且小于集合的大小。“
这是我的代码:
for (var i = 0; i < dt.Rows.Count; i++)
{
Label AppAmmount = (Label)rpOffers.Items[i].FindControl("AppAmmount");
}
答案 0 :(得分:2)
您正在循环dt.Rows.Count
,但您正在访问rpOffers.Items
。似乎DataTable
包含的行多于转发器。
但为什么不是一个简单的foreach
?
foreach(RepeaterItem item in rpOffers.Items)
{
Label AppAmmount = (Label)item.FindControl("AppAmmount");
}
答案 1 :(得分:1)
您可以使用rpOffers.Items.Count
代替dt.Rows.Count
。
for (var i = 0; i < rpOffers.Items.Count; i++)
{
Label AppAmmount = (Label)rpOffers.Items[i].FindControl("AppAmmount");
}