Probléme avec <asp:CheckBoxList>

Résolu
digisohaib Messages postés 2 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 3 avril 2011 - 2 avril 2011 à 14:01
digisohaib Messages postés 2 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 3 avril 2011 - 3 avril 2011 à 15:32
bonjour,

je suis entrain de développer un programme qui permet de modifier les états des pièces d'une véhicule ( true/false) , voici la démarche que j'ai suivi

- j'ai créer une checkboxlist avec une fonction d'initialisation qui prend les valeur de la base de donné comme suite :
  
 ds.Tables["DataTablePieceControle"].Merge(dt);
            CheckList.DataSource = ds;
            CheckList.DataTextField = "NOM";
            CheckList.DataValueField = "ID_PIECE";
            
            String et = null;
            CheckList.DataBind();


for (int i = 0; i < CheckList.Items.Count; i++)
            {
                et = dt.Rows[i]["ETAT_PIECE"].ToString();
                CheckList.Items[i].Selected = Boolean.Parse(et);
            }

pour cette étape ca marche bien ,
- l'hors de demande d'utilisateur le programme affiche l'ensemble des pièces avec les états déjà dans la base de donnée
mon problème c'est lorsque l’utilisateur décoché ou bien coché une valeur je doit mettre ajours l’État du pièce sélectionné , donc je doit fournir a une fonction l'ID du pièce voila le code que j'ai utiliser
   public void SelectedIndex(object sender, EventArgs e)
           {
        int pe =  CheckList.SelectedIndex;
        int i ,id_piece;
        string s=null;// la valeur ou je stock l'id de piece selectioné 
       for (i = 0; i < (CheckList.Items.Count ); i++)
          if (CheckList.Items[i].Selected)
           s = CheckList.Items[i].Text;
         
               id_piece = int.Parse(s);
        update_etat(id_p);
          }




ce que j'ai remarqué c'est que les indice de cette checklist sont pas trier ex( 1 , 0, -1) dans le cas ou j'ai 3 case a coché
je suis bloqué dans cette étapes , merci infiniment d'avoir m'aider je doit fournir les résultat a mon patron au max lundi

merci d'avoir lire mon sujet :) :) ):

2 réponses

dialvb Messages postés 19 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 3 avril 2011 1
3 avril 2011 à 12:56
Pourquoi créer un tas de variables inutiles?
int Pe n'est pas utilisé

public void SelectedIndex(object sender, EventArgs e)
{
int i
for (i = 0; i < (CheckList.Items.Count ); i++)
{if (CheckList.Items[i].Selected) then : update_etat(CheckList.Items[i].value)
}

Ce n'est pas suffisant ca?
Mais ton code ne traite que les pièce qui sont selectionnées et ne prend pas en compte celle qui sont déselectionnées.
autrement dit si on selectionne une pièce la mise à jour se fera.
Mais si par la suite en la déselectionne, rien ne bougera. Aucun retour en arrière possible.

il faudra savoir ce que fait exactement update_etat car ca me semble incomplet.
Il devrait y avoir 2 arguments (l'ID et l'état false or true)
Ca m'a l'air mal conçu tout ca.
3
digisohaib Messages postés 2 Date d'inscription samedi 2 avril 2011 Statut Membre Dernière intervention 3 avril 2011
3 avril 2011 à 15:32
bonjour,
merci pour votre réponse , j'ai fait ces modification est ca marche bien ,


merci encore une fois :) :)
0
Rejoignez-nous