Bonjour,
Depuis deux jours, je lis des documentations en anglais qui m'expliquent comment optimiser la taille de mon viewstate ou dans quel ordre surviennent les évènements d'une page serveur ... mais dans tout cela, je n'ai toujours pas compris l'enchainement simple qui me permet de l'utiliser.
J'ai bien essayé d'accéder directement à ViewState["ddlListe1"], mais sans succès
Donc, j'ai une question simple : comment détecter que la valeur d'un élément du formulaire à changé ?
C'est à dire : dans quelle méthode mettre quelle donnée pour détecter ce changement.
Prenons pour exemple deux DropDownList. Les valeurs de la seconde dépendent de l'item sélectionné dans la première et ne sont modifiées que si la valeur de la DropDownList a changé et est renseignée.
Le code de l'ASPX :
Le code de l'ASPX.cs (l'item avec "-" doit permettre de ré initialiser) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <asp:DropDownList ID="ddlListe1" AutoPostBack="true" runat="server" /><br /> <asp:DropDownList ID="ddlListe2" AutoPostBack="true" runat="server" />
Merci d'avance pour votre aide.
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
18
19
20
21
22
23
24
25
26
27
28
29 protected void Page_PreRender(object sender, EventArgs e) { // au premier chargement if ((ddlListe1.SelectedValue == "") || (ddlListe1.SelectedValue == "-1")) { // chargement de la liste 1 DataSet liste1 = (DataSet)Session["liste1"]; ddlListe1.DataSource = liste1 ; ddlListe1.DataTextField = "NOM"; ddlListe1.DataValueField = "ID"; ddlListe1.DataBind(); ddlListe1.Items.Insert(0, new ListItem("-", "-1")); ddlListe2.Enabled = false; } else { // si liste1 sélectionnée, récupération liste 2 int idListe1 = Int32.Parse(ddlListe1.SelectedValue); // *** ici, il faudrait un truc pour dire "ou si changement" if ((ddlListe2.SelectedValue == "") || (ddlListe2.SelectedValue == "-1")) { // chargement de la liste 2 si liste 1 sélectionnée DataSet liste2 = MonObjet.getListe2(idListe1); ddlListe2.DataSource = listeSites; ddlListe2.DataTextField = "NOM"; ddlListe2.DataValueField = "ID"; ddlListe2.DataBind(); ddlListe2.Enabled = true; } } }
Stéphanie
Remarque : j'ai déja suivi tous les liens que j'ai pû trouver sur le forum
Partager