Bonjour,
J'ai un site web avec un page aspx qui contient un ascx qui lui même contient des dropdownlist.
Dans mon projet, j'ai un dbml qui contient toutes les procédures stockées dont j'ai besoin et aussi une classe métier qui encapsule le procédures dans un contexte.
Pour charger les données des dropdownlist, j'ai créé des propriétés du style "DonneesPersonnes" de type DataTable que je renseigne dans le load de la page :
ex :
Puis dans mon ascx, j'ai donc ma propriété DonneesPersonnes qui est comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { MyASCX.DonneesPersonnes = DataContext.GetListePersonnes(); } }
Et pour finir dans le prerender de mon contrôle je regarde si la dropdownlist contient des données et si non, je la remplis avec les données de la propriété comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public DataTable DonneesPersonnes { get { return ((DataTable)ViewState["DonneesPersonnes"]); } set { ViewState["DonneesPersonnes"] = value; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 // Pas d'usage , on remplie la liste if (ddlPersonnes.Items.Count == 0) { ddlPersonnes.DataSource = DonneesPersonnes; ddlPersonnes.DataTextField = "Libelle"; ddlPersonnes.DataValueField = "PersonneID"; ddlPersonnes.DataBind(); ListItem lst = new ListItem(); lst.Text = "--- Choisissez ---"; lst.Value = "-1"; ddlPersonnes.Items.Insert(0,lst); }
Alors maintenant passons aux questions :
Voilà je me pose sur la façon de faire :
Est-ce que j'utilise la bonne façon de faire ?
Est-ce qu'il vaut mieux stocker les données dans un viewstate pour ensuite les retrouver ou alors faut-il les recharger à chaque fois (appel en base) ?
Le viewstate est-il fait pour ça ?
Comment faites-vous poru faire ce genre de choses ?
Merci par avance
Remi.
Partager