[résolu] [ASP.NET] problème avec column.count dans une datagrid

Bonjour à tous.

J’ai un petit souci actuellement, je n’arrive vraiment pas à regler ça.

Il faut que j’affiche un dataset dans un datagrid. Mais avant ça j’aimerai ajouter 2 colonnes à mon datagrid : 1 au début (pour afficher des petits bouton +) et une à la fin (pour afficher des placeholders, comme ça quand on clique sur le + ça rend le placeholder visible, mais ça c’est juste pour la petite histoire car le problème n’est pas là).

Mon problème est que je n’arrive PAS, mais vraiment pas, à installer cette ## de colonne à la fin.

voilà un petit résumé de mon code :

[code]

private void Grid_Init(object sender, EventArgs e)
{

// add the + / - column at position 0
TemplateColumn templatePlusMinusColumn = new TemplateColumn();
templatePlusMinusColumn.ItemTemplate = new PlusMinusColumnTemplate();
Columns.AddAt(0, templatePlusMinusColumn);
Columns[0].ItemStyle.Width = 25;

// add the PlaceHolders column
TemplateColumn templatePlaceHolderColumn = new TemplateColumn();
templatePlaceHolderColumn.ItemTemplate = new PlaceHolderColumnTemplate();
Columns.AddAt( « !!! » , templatePlaceHolderColumn);
}[/code]

Donc c’est là où j’ai mis des !!! que j’aimerai mettre l’indice de la dernière colonne. j’ai essayé column.cout mais ça marche pas. j’ai essayé de faire un databind, puis un colomn.count, ça marche toujours pas… et euh… ben ça marche pas.

je précise qu’on est dans un custom control qui dérive d’une datagrid, mais ça devrait pas changer grand chose je pense.

Je vous remerci d’avance pour la solution que vous aller trouver :stuck_out_tongue:

Pourquoi tu n’utilises pas tout simplement

Normalement ça devrait fonctionner et te rajouter ta colonne à la fin.

merci pour ta réponse rapide, mais ça ne marche pas. (ça m’étonnerait pas qu’il utilise la fonction column.count la dedans le petit malin)

Je pense que le problème vient du fait qu’on a pas encore “bindé” la table, donc il n’a pas encore “lu” le dataset.
(je pense)

est-ce que dans ma fonction d’init, je peux avoir accès, d’une manière ou d’une autre à ma source ? (pour pouvoir compter le nombre de colonnes ?)

Attends, quand tu dis que ça marche pas… tu pourrais donner l’erreur? Tu as une erreur à la compilation ou tu as une exception qui est levée?

euh… quand je dis ça marche pas, ça veut dire qu’il me met ma colonne en 2e position, juste après ma « PlusMinustructemplatecolumn »

je voudrais qu’il la mette à la fin :stuck_out_tongue:

(j’ai ma grid en « autogenerate » parceq ue mon dataset n’a pas toujours le même nombre de colonnes)

J’ai fini par trouver!! (m’aura fallu que 2 jours!!)

au lieu d’utiliser la fonction Init d’une datagrid, je fais ça

[code]protected override ArrayList CreateColumnSet(PagedDataSource source, bool useDataSource)
{
ArrayList al = base.CreateColumnSet(source, useDataSource);

al.Insert(0, new PlusMinusColumn());

al.Insert(al.Count, new PlaceHolderColumn());

return al;

}[/code]

et ça marche.

On passe à l’étape suivante…