【问题标题】:Help Multiple controls with the same ID '' were found. FindControl requires that controls have unique IDs帮助找到具有相同 ID '' 的多个控件。 FindControl 要求控件具有唯一的 ID
【发布时间】:2011-07-01 19:01:21
【问题描述】:

我一直得到这个,但没有人能解决这个错误,我在运行时添加图像,从 db 获取链接并进行动态图像控制,但是这个错误妨碍了我。 找到了具有相同 ID 'projectimg8' 的多个控件。 FindControl 要求控件具有唯一的 ID。

   string get = ListBox1.SelectedItem.Text;
    DataSet ds = con.getprojectgallery(get);
    if (ds!=null)
    {
        int count = ds.Tables[0].Rows.Count;
        for (int i = 0; i < count; i++)
        {
            Image img = new Image();
            img.ID = "projectimg" + count.ToString();
            img.ImageUrl = ds.Tables[0].Rows[0][0].ToString();
            img.Height = 80;
            img.Width = 80;
            img.ToolTip = ds.Tables[0].Rows[0][1].ToString();
            pnlgallery.Controls.Add(img);
            pnlgallery.Controls.Add(new LiteralControl("<br />"));
        }

【问题讨论】:

  • 错误消息非常清楚错误原因:存在具有相同 ID 的控件。因此,请确保没有具有相同 ID 的控件。
  • projectimg+i.tostring() 是唯一的名称。

标签: asp.net


【解决方案1】:

改成:

img.ID = "projectimg" + i.ToString();

您需要递增的计数,而不是计数变量本身。

【讨论】:

    【解决方案2】:

    确保在生成图像时它们都有唯一的 ID。

    你给我们看一些代码会更容易..

    编辑:

    感谢您的代码。

    在您设置 ID 的行中,您每次都使用相同的数字,因为count 代表行数。

    您可以使用 Matt 的代码,或者:

    img.ID = String.Format("projectimg{0}", i);
    

    【讨论】:

    • 字符串获取 = ListBox1.SelectedItem.Text;数据集 ds = con.getprojectgallery(get); if (ds!=null) { int count = ds.Tables[0].Rows.Count; for (int i = 0; i
    • 查看我更新的帖子。另外,请确保下次编辑问题并在其中包含源代码 - 它的格式看起来要好得多;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多