Problème liste déroulante cascade C# / ASP.NET- Architecture MVC
Fermé
anisbenb
Messages postés5Date d'inscriptionlundi 14 avril 2014StatutMembreDernière intervention 9 juin 2014
-
Modifié par anisbenb le 9/06/2014 à 01:13
Bonjour/Bonsoir,
Je suis actuellement en plein développement d'une application en ASP.NET/C# avec quelques requêtes en SQL, ce que je veux faire c'est faire afficher 3 listes déroulante en cascade
( dropdownlist ) dans ce genre la :
Dans mon cas, la 1er dropdownlist doit afficher les activités sans aucun lien avec une autre liste déroulante, la 2nd doit s'afficher lorsque l'activité et choisi et la 3e ddl doit s'afficher selon la 2e ddl.
la 1er dropdownlist ( liste déroulante ) s'affiche très bien mais dés que les liste déroulante doit s'afficher en cascade c'est la catastrophe ! J'ai fais pas mal de recherche sur le net et de test malheureusement je n'ai toujours pas trouver mon bonheur.
J'ai pris quelques impressions écrans de mon code pour l'exemple de ma ddl " Type_Praticien", par exemple.
private void Charger_Type_Praticien()
{
try
{
Type_Praticien praticien = new Type_Praticien();
int id_activite = Convert.ToInt32(ddl_activites.SelectedValue);
ddl_type_praticiens.DataSource = praticien.Liste_Type_Praticiens(id_activite);
ddl_type_praticiens.DataBind();
ddl_type_praticiens.Items.Insert(0, "Choisir un type de praticien");
}
catch (MonException)
{
// Propagation à la méthode qui sera chargée d'afficher le message
throw;
}
catch (Exception ex)
{
// Initialisation d'une exception dérivée et propagation à
// la méthode qui sera chargée d'afficher le message
throw new MonException("Erreur sur du chargement de la liste des types de praticiens.", "InvitationsPraticiens.aspx.Charger_Type_Praticien()", ex.Message);
}
}
protected void ddl_type_praticiens_IndexChanged(object sender, EventArgs e)
{
int id_type_praticien = Convert.ToInt32(ddl_type_praticiens.SelectedValue);
ddl_praticiens.DataTextField = "nom_praticien";
ddl_praticiens.DataValueField = "id_praticien";
ddl_praticiens.DataBind();
ddl_praticiens.Items.Insert(0, new ListItem("--select--", "0"));
}
Niveau couche métier ( utilisation de la base de donnée ) :
public Type_Praticien()
{
//
// TODO: ajoutez ici la logique du constructeur
//
}
public DataTable Liste_Type_Praticiens(int id_activite_compl)
{
sErreurs er = new sErreurs("Erreur sur lecture de la liste des type de praticiens.", "Type_Praticiens.Liste_Praticiens()");
try
{
//string req = "select * from type_praticien";
string req = "select * from type_praticien t join praticien p on t.id_type_praticien = p.id_type_praticien";
req += "join inviter i on p.id_praticien = i.id_praticien";
req += "Where id_activite_compl = " + id_activite_compl; // Oracle
// req = req.Replace("id_activite_compl", id_activite_compl.ToString());
return (DbInterface.Lecture(req, er));
}
catch (MonException)
{
throw;
}
}
Ma base de donnée ressemble à sa :
Mais seulement les tables activite_compl, inviter, praticien et type_praticien sont à manipuler
Lorsque je debug l'erreur suivante s'affiche :
Comme vous pouvez le voir (ou pas) la ddl activite s'affiche mais les autres non et le message d'erreur suivant survient "Erreur sur du chargement de la liste des types de praticiens"