Evenements [Résolu]

Signaler
Messages postés
8
Date d'inscription
vendredi 30 mai 2003
Statut
Membre
Dernière intervention
12 décembre 2007
-
Messages postés
13
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
13 mars 2007
-
Bonjour,
J'ai un problème de gestion d'evenement sur ma page, je m'explique :
Lorsque l'utilisateur selectionne une valeur dans une dropdown list, un postback se produit, ma page se refraichit ma à aucun moment le code d'evènement de ma dropdownlist n'est exécuté soit la méthode : maDropDownList_SelectedIndexChanged
Pouvez vous m'aider? je n'arrive pas à résoudre se problème.

Voici ce que j'ai fait :

Je génère des controles personalisé (ascx) dans une page
dans mon controle j'ai une dropdownlist :
//Dans mon controle.ascx

<asp:DropDownList
AutoPostBack="true"
ID="maDropDownList"
runat="server"
OnSelectedIndexChanged="maDropDownList_SelectedIndexChanged"
EnableViewState="true"
/>dans le code-behind de mon controle je remplis ma liste dans le page-load s'il ne s'agit pas d'un postback. :
maDropDownList.Items.Clear();
maDropDownList.Items.Add(

new
ListItem(
"-",
"-"));
maDropDownList.Items.Add(
new
ListItem(
"Afficher - Modifier",
"0"));
maDropDownList.Items.Add(
new
ListItem(
"Supprimer",
"1"));

et j'utilise la methode suivante pour gerer l'evenement :

protected
void  maDropDownList_SelectedIndexChanged(
object sender,
EventArgs e)
{

...............
}

//Dans ma page, je rajoute mon controle dynamiquement dans un container lorsque l'utilisateur clique sur un bouton.

Control c1;

c1 =
new
Control();
c1 = LoadControl"
MonControle.ascx");

MonPlaceHolder.Controls.Add(c1);

Merci d'avance

 Panpan

9 réponses

Messages postés
13
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
13 mars 2007

Le DataSource est une liste de type Dictionary<
int,
ObjetMetier>.
ValueCollection fournie par un composant métier. Pour l'édition, effectivement, tout n'est pas encore mis en place, mais pour le tri et la pagination, je pensais que le GridView pouvait se débrouiller car lorsque le DataSource est un SqlDataSource, la seule chose que l'on précise est la requete.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour

cette question a été debatue plusieurs fois sur le forum, il s uffit de rajouter tes controles avant ton page_load c'est à dire lors du page_init :-)

<hr />Cyril - MVS - MCP
Messages postés
8
Date d'inscription
vendredi 30 mai 2003
Statut
Membre
Dernière intervention
12 décembre 2007

Bonjour,
tout d'abord merci pour ta réponse.

Cependant,
Je souhaite afficher les résultats d'une recherche dynamiquement .

J'ai un formulaire et je génère le résultat.

De plus, Il me faut récupérer les informations contenu dans ma masterpage qui n'est pas initialisée dans le page init......
Je ne peux donc pas générer mes controles dans le page init.....

Aurais tu une autre suggestion?

Oup's, Une autre question me viens lol  est il possible de gerer les postback des controles generer dynamiquement sans effectué le rechargement de la page principale?

Merci :o)

 Panpan
Messages postés
195
Date d'inscription
vendredi 3 juin 2005
Statut
Membre
Dernière intervention
13 juillet 2006
3
Tu génére tes controle méme vide dans ton page_init et ensuite tu les rempli ou tu les géres comme tu veux mais l'essentiel c'est qu'il soit généré dans le page_init.
J'ai eu le méme probléme que toi, j'ai passé de nombreuses heures dessus et jesusonline avait bien raison, c'est dans le page_init que tout se passe
Si tu ne comprends pas bien, essaye de trouver sur le web le schéma du cycle de vie d'une page asp et tu y verras plus clair
Courage!!
Messages postés
8
Date d'inscription
vendredi 30 mai 2003
Statut
Membre
Dernière intervention
12 décembre 2007

Impossible je ne connais pas le nombre de controles qu'il va me falloir


ce n'est pas grave je vais tronquer ma dropdownlist contre des liens hyperlinks 


Merci quand même.



 Panpan
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Pour le chargement partiel de ta page regarde atlas et l'updatepanel

<hr />Cyril - MVS - MCP
Messages postés
13
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
13 mars 2007

Bonjour

J'ai un GridView dans ma page pour lequel la DataSource est défini dans le PageLoad, le binding se fait à ce moment là. Mon problème: une erreur si j'essaye de trier une colonne: "The GridView 'GridView2' fired event Sorting which wasn't handled.". Même souci avec toutes les autres actions qui normalement sont correctement gérées (pagination, édition, ...). L'affectation de la DataSource dans le Page_Init ne change à priori rien au problème...

Merci d'avance
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
le DataSource permet l'édition, pagination etc... ?

<hr />Cyril - MVS - MCP
Messages postés
13
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
13 mars 2007

Merci Cyril de t'être intéressé à mon problème.

Je viens de tomber sur un article qui me permet de faire marcher la pagination. Je pense qu'il me faut faire quelques adaptation pour le tri mais la conclusion de tout ceci est qu'il faut intercepter les évenements, faire soit même l'action voulue et refaire le binding ce dont je n'étais pas convaincu au début (c'est tellement mieux quand ça marche tout seul...).