【问题标题】:How to get Label inside repeater not in itemdatabound如何在中继器中获取标签而不是在itemdatabound中
【发布时间】:2017-08-21 12:07:09
【问题描述】:

我试图在“for”循环中的中继器中获取标签,但我不断收到错误消息:

“在 mscorlib.dll 中发生了“System.ArgumentOutOfRangeException”类型的异常,但未在用户代码中处理

附加信息:索引超出范围。必须是非负数 并且小于集合的大小。”

这是我的代码:

for (var i = 0; i < dt.Rows.Count; i++)
{
    Label AppAmmount = (Label)rpOffers.Items[i].FindControl("AppAmmount");
}

【问题讨论】:

    标签: c# asp.net repeater


    【解决方案1】:

    您正在循环dt.Rows.Count,但您正在访问rpOffers.Items。似乎DataTable 包含的行数比转发器多。

    但是为什么不简单的foreach呢?

    foreach(RepeaterItem item in rpOffers.Items)
    {
        Label AppAmmount = (Label)item.FindControl("AppAmmount");
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用rpOffers.Items.Count 代替dt.Rows.Count

      for (var i = 0; i < rpOffers.Items.Count; i++)
      {
          Label AppAmmount = (Label)rpOffers.Items[i].FindControl("AppAmmount");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-26
        • 2021-11-27
        • 2017-09-04
        • 2010-10-12
        相关资源
        最近更新 更多