J'essaie d'ajouter un nom unique à chaque zone de texte que j'ajoute à une table.Comment nommer et trouver des contrôles Web créés dynamiquement dans C#
J'ai essayé:
TableRow someRow = new TableRow();
TableCell someCell = new TableCell();
TextBox someTextbox = new TextBox();
someTextbox.Attributes.Remove("name");
someTextbox.Attributes.Add("name",itsId);
someCell.Controls.Add(someTextBox);
someRow.Cells.Add(someCell);
theTable.Rows.Add(someRow);
Le code HTML généré inclut à la fois mon nom et le nom autogenerated comme attributs de la zone de texte.
Malheureusement, quand j'exécute un FindControl
, par mon nom, j'obtiens une référence nulle, même si cela fonctionne toujours pour le trouver par le nom autogénéré.
Que dois-je faire pour trouver le contrôle par mon nom? Quand/pourquoi génère-t-il des noms pour mes contrôles?
Code avec succès:
TextBox tb = (TextBox)FindControl(autogeneratedID); WriteToSomeOtherDiv(tb.Text);
Code Unsuccessful:
TextBox tb = (TextBox)FindControl(myId); WriteToSomeOtherDiv(tb.Text);
Pouvez-vous publier le code - les deux échecs et successeurs. – ChrisF