tibik a écrit :
a quoi correspond mydropdownlist? si c'est l'ID du dropdownlst sur la colonnes du datagrid alors est ce que l'écriture dmdropdownlist[i] est juste ou devrai je mettre
int i=0;
foreach(ItemDataGrid element in myDatagrid.Items)
{
DropDownList dp = (DropDownList)element.FindControl("mydropdownlist" );
if (sender != dp) i++;
}
|
Ouaip, c'est ça, sauf que ton foreach il est pas top : si tu as 100 lignes, et que tu clickes sur la première, tu ne sortiras pas de ta boucle avant d'avoir tout parcouru.
Je conseille un :
Code :
- // BOUCLE DE RECHERCHE SUR MES DATAROWS
- int i = 0;
- DropDownList current = null;
- // la boucle continue :
- // tant que je n'arrive pas au bout de mes lignes
- while((i < myDatagrid.Items)
- // ou si je ne trouve pas de drop down list dans ce row
- && (null != (dp = (element.FindControl("mydropdownlist" ) as DropDownList)))
- // ou si cette drop down list n'est pas celle que je cherche
- && (dp != sender))
- i++;
- // si je ne suis pas arrivé au bout de mes lignes
- if(i < myDatagrid.Items)
- // alors j'ai trouvé la ligne clickée
- ....
|
Beaucoup plus propre, mais un peu plus long à écrire.
Sinon, tu peux aussi faire un foreach/break mais c'est crado. A éviter pour un boulot professionnel ou si d'autres personnes sont susceptibles de bosser sur ton code après.