title: ASP.NET Multiple controls with the same ID 'x' were found. FindControl
body: <p>Getting the following error</p>
  
  <p>Multiple controls with the same ID 'ltlItemCode' were found. FindControl requires that controls have unique IDs.</p>
  
  <p>This Error does not happen on page loads but when I change the value of a drop down which has   AutoPostBack="true".</p>
  
  <p>Code is </p>
  
  <pre><code>    //Number of Services
      numberofServices = Int32.Parse(DCCFunctions.GetNumServicesPerRoom(roomId.ToString()));
      additionalServices = new UserControls_AdditionalService[numberofServices - 1];
  
      String htmlTable = String.Empty;
      Int32 cell = 1;
      Int32 rows = numberofServices;
      Int32 cols = 4;
  
  
      TableHeaderRow h = new TableHeaderRow();
      TableHeaderCell hc1 = new TableHeaderCell();
      hc1.Text = "Item Description";
      h.Cells.Add(hc1);
      TableHeaderCell hc2 = new TableHeaderCell();
      hc2.Text = "Item Price";
      h.Cells.Add(hc2);
      TableHeaderCell hc3 = new TableHeaderCell();
      hc3.Text = "Item Quantity";
      h.Cells.Add(hc3);
      TableHeaderCell hc4 = new TableHeaderCell();
      hc4.Text = "Item Sub Total";
      h.Cells.Add(hc4);
      Table1.Rows.Add(h);
  
      // Open database connection
      DBConnection conn = new DBConnection();
  
      // Retrieve details
      SqlCommand sqlGetDetails = conn.SetStoredProcedure("spGetAdditionalServicesDetails");
      DBConnection.AddNewParameter(sqlGetDetails, "@roomId", ParameterDirection.Input, SqlDbType.Int, roomId);
  
      try
      {
          conn.Open();
  
          SqlDataReader reader_list = sqlGetDetails.ExecuteReader();
          if (reader_list.HasRows)
          {
              while (reader_list.Read())
              {
                  //returnVal = reader_list["Num"].ToString();
                  htmlTable += "&amp;lt;tr&gt;" + Environment.NewLine;
                  TableRow r = new TableRow();
  
                  additionalServices[cell - 1] = (ASP.usercontrols_additionalservice_ascx)LoadControl("~/UserControls/AdditionalService.ascx");
  
                  Literal ItemCode = (Literal)additionalServices[cell - 1].FindControl("ltlItemCode") as Literal;
                  ItemCode.Text = reader_list["itemDescription"].ToString();
  
  
                  Literal ItemPrice = (Literal)additionalServices[cell - 1].FindControl("ltlItemPrice") as Literal;
                  ItemPrice.Text = "&amp;euro;" + reader_list["unitPrice"].ToString();
  
                  Literal ItemTotal = (Literal)additionalServices[cell - 1].FindControl("ltlTotalPrice") as Literal;
                  ItemTotal.Text = "&amp;euro;" + "0";
  
                  TableCell ItemCodeCell = new TableCell();
                  ItemCodeCell.Controls.Add((Literal)additionalServices[cell - 1].FindControl("ltlItemCode") as Literal);
  
                  TableCell ItemCodePriceCell = new TableCell();
                  ItemCodePriceCell.Controls.Add((Literal)additionalServices[cell - 1].FindControl("ltlItemPrice") as Literal);
  
                  TableCell ItemCodeTotalCell = new TableCell();
                  ItemCodeTotalCell.Controls.Add((Literal)additionalServices[cell - 1].FindControl("ltlTotalPrice") as Literal);
  
                  TableCell c = new TableCell();
                  DropDownList qtyList = (DropDownList)additionalServices[cell - 1].FindControl("qtyList") as DropDownList;
                  qtyList.Items.Add(new System.Web.UI.WebControls.ListItem("Select Quantity...", "0"));
                  qtyList.DataBind();
  
                  for (Int32 count = 1; count &lt; 101; count++)
                  {
                      qtyList.Items.Add(new System.Web.UI.WebControls.ListItem(count.ToString(),count.ToString()));
                  }
                  //c.ColumnSpan = 5;
                  c.Controls.Add((DropDownList)additionalServices[cell - 1].FindControl("qtyList") as DropDownList);
  
  
                  r.Cells.Add(ItemCodeCell);
                  r.Cells.Add(ItemCodePriceCell);
                  r.Cells.Add(c);
                  r.Cells.Add(ItemCodeTotalCell);
                  //r.Controls.Add(additionalServices[cell - 1]);
                  //cell += 1;
  
                  // Add the row
                  Table1.Rows.Add(r);
              }
          }
          reader_list.Close();
      }
      catch (Exception ex)
      {
          M1Utils.ErrorHandler(ex);
      }
      finally
      {
          conn.Close();
      }`
  </code></pre>