chaque bouton créer doit avoir un nom unique et pour faire ca dynamiquement je ne vois pas. (RadioButton bouton+i = new RadioButton(); ne fontionnant évidemment pas).
while(reader.Read()) { //blablabla RadioButton bouton1 = new RadioButton(); //blablabla }
List<RadioButton> liste = new List<RadioButton>(); int i = 0; while(reader.Read()) { //blablabla liste.Add(new RadioButton()); // Là, tu peux utiliser liste[i].machin = qqche i++; }
liste[i].ID = "monRadioButton"+reader.Get(2);
FindControl("monRadioButton"+reader.Get(2);
label2.Text = "<table><tr><th>Nom<th>Type<th class='dispo'>Disponible<th class='dispo'>Indisponible";
RadioButton bouton = new RadioButton(); while (reader.Read()) { string ressource = reader.GetString(0); string typeRessource = reader.GetString(1); label2.Text += "<tr><td>" + ressource + "<td>" + typeRessource + "<td>" + bouton + "<td>"; }
De plus j'ai essayer d'ajouter un bouton radio tout bête sans boucle à mon tableau et ca m'affiche ca dans la colonne : System.Web.UI.WebControls.RadioButtonOui, c'est normal, c'est la méthode "ToString()" qui est appelée. Pour que ça marche, il faut ajouter ton bouton à un contrôle intégré à la page (monWebControl.Controls.Add(monRadioButton));
Au lieu d'afficher un bouton radio, c'est normal ?
""
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionclass Machin { public int Id { get; set; } public string Texte { get; set; } public string Ville { get; set; } }
List<Machin> maListe = maCoucheDAccesAuxDonnees.GetListeDansLaVille("Paris"); maGridView.DataSource = maListe; maGridView.DataBind();
if(Request["formvalide"] != null && Request["formvalide"].ToString() == "oui") { // blablabla }
Ce que je comprend pas c'est que dès le 1er chargement de ma page ca valeur du champ hidden est déjà sur oui.C'est là que tu fais erreur. Ton champ hidden est effectivement sur oui, mais pas Request["formvalide"]. La liste de valeurs de Request peut être remplie de 2 manières : soit manuellement dans l'url (maPage.aspx?formvalide=oui), soit par VALIDATION de formulaire. (pour ne prendre que les variables venant de formulaires avec method="POST", tu peux utiliser Request.Form["formvalide"]
_command.CommandText "SELECT PRM_libelle, PRM_code, PRM_procedure FROM appli_prm WHERE (PRM_pervalid1 '" + Matricule + "' OR PRM_Pervalid2 = '" + Matricule + "' OR PRM_Pervalid3 = '" + Matricule + "') ORDER BY PRM_code, PRM_libelle ASC"; reader = _command.ExecuteReader(); Label label2 = new Label(); PanelCorpsRessources.Controls.Add(label2); label2.Text = " Nom |TypeDisponible |Indisponible\"; i = 1; //RadioButton bouton = new RadioButton(); //PanelCorpsRessources.Controls.Add(bouton); while (reader.Read()) { string ressource = reader.GetString(0); string typeRessource = reader.GetString(1); string prm_procedure = reader.GetString(2); //Ici je vérifie si la ressource est Disponible ou Indisponible et je pre-selectionne le bouton radio approprié if(prm_procedure == \"3\") label2.Text += \"---- " + ressource + ", \" + typeRessource + \", \"; else label2.Text += \"---- " + ressource + ", \" + typeRessource + \", \"; i++; } label2.Text += " "; reader.Close(); if (Request["formvalide"] != null && Request["formvalide"].ToString() == "oui") { // Vérification des boutons radio. //Si le bouton radio a changé d'etat (Indispo -> Dispo) je modifie la bdd sinon je fais rien. }
for(int i = 0; Request.Form["btRessource" + i] != null; i++) // On fait une boucle qui incrémente i tant qu'il existe // des variables "btRessource"+i envoyées avec le formulaire // (tu peux aussi faire une valeur maximum de i si tu connais le nombre de lignes) { // Si par exemple tu veux attribuer la disponibilité de la ressource en cours bool dispo; if(Request.Form["btRessource" + i] == "dispo") dispo = true; else dispo = false; // Peut aussi s'écrire bool dispo (Request.Form["btRessource" + i] "dispo")?true:false; // Voire même (puisque c'est un booléen) bool dispo Request.Form["btRessource" + i] "dispo"; /* Théoriquement, c'est là que tu compares avec ta bdd * pour voir si ça a changé d'état, et si c'est le cas, * tu modifies ta base de données. */ }
SqlConnection connexion = new SqlConnection("blablabla"); connexion.Open(); for(int i = 0; Request.Form["btRessource" + i] != null; i++) // En considérant que tes ressources s'appellent bien btRessource0, btRessource1... { SqlCommand commande = new SqlCommand(); commande.Connection = connexion; commande.CommandText "UPDATE maTable SET etat @etat WHERE etat <> @etat AND id = @id"; // Bien sûr, il faut modifier "maTable", "etat" et "id" pour les faire correspondre à ta base commande.Parameters.Add(new SqlParameter("@etat", Request.Form["btRessource" + i].ToString())); // A condition que tes radiobuttons aient exactement la valeur qui se trouve en BDD commande.Parameters.Add(new SqlParameter("@id",i)); /* A condition que tes identifiants correspondent à l'affichage, * ce qui est peu probable. L'autre solution consiste à faire * un champ hidden lors de ta génération de tableau, du genre * "" * pour chaque entrée, et de remplacer la ligne ci-dessus par * commande.Parameters.Add(new SqlParameter("@id", Convert.ToInt32(Request.Form["identifiant" + i].ToString()))); */ command.ExecuteNonQuery(); } connexion.Close();
_command.CommandText "SELECT PRM_libelle, PRM_code, PRM_procedure, PRM_numero FROM appli_prm WHERE (PRM_pervalid1 '" + Matricule + "' OR PRM_Pervalid2 = '" + Matricule + "' OR PRM_Pervalid3 = '" + Matricule + "') ORDER BY PRM_code, PRM_libelle ASC"; reader = _command.ExecuteReader(); Label label2 = new Label(); PanelCorpsRessources.Controls.Add(label2); label2.Text " Nom |Type<th class'dispo'>Etat*\"; i = 1; while (reader.Read()) { string ressource = reader.GetString(0); string typeRessource = reader.GetString(1); string prm_procedure = reader.GetString(2); //Ici je vérifie si la ressource est Disponible ou Indisponible et je pre-selectionne le bouton radio approprié if(prm_procedure == \"0\") label2.Text += \"---- " + ressource + ", \" + typeRessource + \"<select ID='btRessource" + i + "' name='btRessource" + i + "' /><option value='0' selected='selected'>RD</option><option value='1'>RDI</option><option value='2'>RSV</option><option value='3'>Indisponible</option></select>"; else if(prm_procedure == "1") label2.Text += "----, \" + ressource + \"" + typeRessource + ", <select ID='btRessource\" + i + \"' name='btRessource\" + i + \"' /><option value='0'>RD</option><option value='1' selected='selected'>RDI</option><option value='2'>RSV</option><option value='3'>Indisponible</option></select>\"; else if(prm_procedure == \"2\") label2.Text += \"---- " + ressource + ", \" + typeRessource + \"<select ID='btRessource" + i + "' name='btRessource" + i + "' /><option value='0'>RD</option><option value='1'>RDI</option><option value='2' selected='selected'>RSV</option><option value='3'>Indisponible</option></select>"; else label2.Text += "----, \" + ressource + \"" + typeRessource + ", <select ID='btRessource\" + i + \"' name='btRessource\" + i + \"' /><option value='0'>RD</option><option value='1'>RDI</option><option value='2'>RSV</option><option value='3' selected='selected'>Indisponible</option></select>\"; label2.Text += \"\"; i++; } label2.Text += " (*)RD Reservation Directe / RDI Reservation Directe avec Information du gestionnaire / RSV = Reservation Soumise à Validation / Indisponible = Ressource Indisponible "; reader.Close(); if (Request.Form["formvalide"] ! = null && Request.Form["formvalide"].ToString() == "oui") { // On fait une boucle qui incrémente i tant qu'il existe des variables "btRessource"+i envoyées avec le formulaire for (i = 1; Request.Form["btRessource" + i] != null; i++) { _command.CommandText "UPDATE appli_prm SET PRM_procedure @etat WHERE PRM_procedure = @etat AND PRM_numero = @id"; _command.Parameters.Add(new SqlParameter("@etat", Request.Form["btRessource" + i].ToString())); _command.Parameters.Add(new SqlParameter("@id", Convert.ToInt32(Request.Form["identifiant" + i].ToString()))); } }