[C#] Datagrid et Control dynamiques

Voila, la je galere un peu pour savoir ce que je dois faire, j’espere que vous pourrez m’aider.

J’ai besoin de creer dynamiquement un datagrid avec deux colonnes.

La premiere contiens le numero de la ligne, j’ai fais ca avec un template column:

[quote]asp:templatecolumn
 
    <%# Container.ItemIndex+1 %>
 
</asp:templatecolumn>[/quote]

Pour la seconde collone, c’est un peu plus complique car dans une seule collonne, je dois mettre des donnees diverses dont:

  • des donnees communes comme un titre, une description, etc.
  • des control variables qui en fonction d’une donne particuliere trouvee dans la database et mis dans un dataSet, doit en fonction de sa value me faire ajouter tel ou tel control.

Et ca j’arrive pas a savoir comment le faire “proprement”, quelqu’un peux me conseiller ?

Voila deja le code des donnees “communes”.

[quote]asp:TemplateColumn









<asp:Label ID=“LabelTitle” Runat=“server”><%# DataBinder.Eval(Container.DataItem, “Title”) %></asp:Label> <asp:Image ID=“ImageInfo” Runat=“server” Visible=’<%# DataBinder.Eval(Container.DataItem, “Description”).Equals("") ? false : true %>’ AlternateText=’<%# DataBinder.Eval(Container.DataItem, “Description”) %>’ ImageUrl=“images/info.gif” Height=“20” Width=“20”></asp:Image>
<asp:Label ID=“LabelQuestionType” Visible=“True”><%# DataBinder.Eval(Container.DataItem, “Type”) %></asp:Label>


</asp:TemplateColumn>[/quote]

Voila comment je remplis le DataSet:

[quote]DataSet ds = new DataSet(“questions”);
ds.Tables.Add(“questions”);

ds.Tables[“questions”].Columns.Add(“Title”); // Title of the question
ds.Tables[“questions”].Columns.Add(“Description”); // description of the question
ds.Tables[“questions”].Columns.Add(“Type”); // type of the question

… // je remplis mon DataSet avec les bonnes valeurs…

DataGridQuestions.DataSource = ds;
DataGridQuestions.DataBind();[/quote]

Mais comment puis-je rajouter les Control dynamiquement, j’ai essaye ce qui suit mais a ce stade la de l’ecution du code, j’ai rien dans le datagrid (?!?!?!) :

[quote]foreach(DataGridItem item in DataGridQuestions.Items)
{
Label l = (Label) item.FindControl(“LabelQuestionType”);
if (l != null)
{
  // ICI J’AI TOUJOURS l.Text == “” CE QUI ME POSE PROBLEME !!!
  }[/quote]

Bon, j’ai fais un truc qui affiche tous les controls en utilisant la technique suivante:

Je pense que q’est foireux mais ca fonctionne.

Par contre quand j’appuie sur un bouton de mon formulaire, j’arrive a retrouver les controls mais les textes sont vides alors qu’a l’affichage, ils sont bel et bien remplis :stuck_out_tongue:

j’ai trouve: ca ne marche pas avec le champ « Text » des « Label » mais ca marche pour le champ « Text » des « Button », va comprendre ! :stuck_out_tongue: :stuck_out_tongue: