2012-01-18 4 views
0

Я создаю элементы управления на некоторых входных XML. Элементы управления затем добавляются к другому элементу управления PlaceHolder, который является местом в таблице. Вот код для справкиДинамические элементы управления, не отображающие

private void RenderFactorControls(string xml) 
    { 
     XmlDocument xmlDoc = new XmlDocument(); 
     xmlDoc.LoadXml(xml); 

     foreach (XmlNode xmlNode in xmlDoc.DocumentElement.ChildNodes) 
     { 
      CheckBox factorCheckBox = new CheckBox(); 
      factorCheckBox.ID = "chkBox"+xmlNode.Attributes["id"].Value; 
      factorCheckBox.Text = xmlNode.Attributes["id"].Value; 

      this.pholderControls1.Controls.Add(factorCheckBox); 
      this.pholderControls2.Controls.Add(factorCheckBox); 
      this.pholderControls3.Controls.Add(factorCheckBox); 
      this.pholderControls4.Controls.Add(factorCheckBox); 
      this.pholderControls5.Controls.Add(factorCheckBox); 
     } 
    } 

Только последний держатель показывает элементы управления.

ответ

0
private void RenderFactorControls(string xml) 
{ 
    XmlDocument xmlDoc = new XmlDocument(); 
    xmlDoc.LoadXml(xml); 

    foreach (XmlNode xmlNode in xmlDoc.DocumentElement.ChildNodes) 
    { 
     string id = "chkBox"+xmlNode.Attributes["id"].Value; 
     string text = xmlNode.Attributes["id"].Value; 

     this.pholderControls1.Controls.Add(new CheckBox() { ID = id, Text = text }); 
     this.pholderControls2.Controls.Add(new CheckBox() { ID = id, Text = text }); 
     this.pholderControls3.Controls.Add(new CheckBox() { ID = id, Text = text }); 
     this.pholderControls4.Controls.Add(new CheckBox() { ID = id, Text = text }); 
     this.pholderControls5.Controls.Add(new CheckBox() { ID = id, Text = text }); 
    } 
} 
0

Вы создали только один CheckBox и пытаетесь добавить его в несколько заполнителей. Добавление элемента управления в контейнер удаляет его из предыдущего родителя. Попробуйте создать 5 разных флажков.