Bonjour,
J'ai un PlaceHolder dans lequel j'ajoute simplement un Menu déroulant.
Aucun porblème, sauf que lorsque je sélectionne un élément de ce menu, pouf ! Il dsiparaît sans laisser de trace...
L'AutoPostBack = false;
Merci
Bonjour,
J'ai un PlaceHolder dans lequel j'ajoute simplement un Menu déroulant.
Aucun porblème, sauf que lorsque je sélectionne un élément de ce menu, pouf ! Il dsiparaît sans laisser de trace...
L'AutoPostBack = false;
Merci
Peux tu faire voir ton code du page load et celui du placeholder?
Ton placeHolder est t'il dynamique?
Le placeholder est créer directement et positionné sur ma page.aspx (mode Design)
Merci
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
30
31
32
33
34
35
36
37
38
39
40 public partial class RegAdmin : System.Web.UI.Page { // Je déclare le DropDownList ici car j'en ai besoin dans la procédure // LoadActiveDirectory() System.Web.UI.WebControls.DropDownList DropContact = new ropDownList(); protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { ReadINIParamFile(); } } -------------------------------------------- protected void LoadActiveDirectory() { try { DirectoryEntry Ldap = new DirectoryEntry(sLDAP); // // Get User CN Name // DirectorySearcher CN_searcher = new DirectorySearcher(Ldap); CN_searcher.Filter = "(objectCategory=user)"; CN_searcher.Sort.PropertyName = ("cn"); CN_searcher.PageSize = 1000; CN_searcher.Sort.Direction = System.DirectoryServices.SortDirection.Ascending; DropContact.Width = 258; DropContact.EnableViewState = false; DropContact.AutoPostBack = false; DropContact.Items.Add("Select contact..."); foreach (SearchResult ContactResult in CN_searcher.FindAll()) { DirectoryEntry DirEntry = ContactResult.GetDirectoryEntry(); DropContact.Items.Add(DirEntry.Properties["cn"].Value.ToString()); } CN_searcher = null; ...
Est tu sur que c'est ton placeholder qui disparait? ca ne serait pas ta DropDown?
Ta dropDownList est dynamique?
étant donné que tu fais :verifie bien que tu alimente bien ta DropDown a chaque PostBack.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DropContact.EnableViewState = false;
tous au long du cycle de vie tes deux controls ont bien Visible = true ?
Oui ma DropList est dynamique, le temps de faire la requête LDAP.
Effectivement, c'est peut-être le control qui disparaît, comment en être sure!
Par contre, je ne suis pas certain de bien comprendre la notion d'alimenter le menu déroulant à chaque PostBack ? Est-ce que ça veut dire de mettre AutoPostBack = true ? Si c'est le cas je'ai essayé avec AutoPostBack à true et à false... toujours le même problème.
Visible = true, je n'ai rien modifié pour les deux controles. Par défaut c'est à true.
Merci
Non le AutoPostBack sert a faire un PostBack dés qu'un événement arrive . Dans ton cas je ne crois pas que ca soit utile.
Les controle dynamique doivent étre réalimenter à chaque fois car il sont recréé à chaque fois(on peut dire que a chaque PostBack c'est un nouveau control). Le viewstate n'applique pas les valeurs correspondante étant donné que c'est un "nouveau" control.
Donc si viewstate désactivé et/ou si control dynamique réalimentation du control obligatoire.
Il est fort possible que ca vienne de la.
Sinon pour verifié regarde le code génere (Html) en sortie.
Mais attention Le placeHolder est ce qu'on appel un control neutre (c'est à dire qu'il ne génère pas de code Html donc si il est vide rien sera générer).
Moi perso je mettrais du texte tt seul avant et après ma DropDown et je regarderais ce qui s'affiche.
OUf ! sacré mystère, je réailse qu''importe les contrôles, ceux qui sont à Postback = true, mon contrôle disparaît et ce n'est pas le cas des autres contrôles à postback = false...
Je ne sais plus quoi voir et essayé, je vais tenter de continuer avec les différentes pistes proposées.
Merci et toute autres suggestions seront les bienvenues.
euh je crois que tu confond.
en disant PostBack je pense que tu parle de AutoPostBack. Si tu c'est pas exactement a koi il sert je te conseil de ne pas y toucher pour le moment.
Sinon la persistance des donnée entre les PostBack est faite par le Viewstate.
On peut controler si les valeurs d'un control sont mis dnas le viewstate avec la proprieté EnableViewstate , pareil a utilisé avec Mme parcimonie, c'est a dire quand on touche a cela on doit savoir ce que l'on fait, C'est pas tiens je vais le mettre a false pour voir ce que ca donne (enfin on peut faire ca au debut pour apprendre mais vraiment attention.).
Aprés tu n'a pas l'air d'avoir une grande experience en asp .net (c'est pas un reproche on est tous passer par la), je te conseil pour le moment d'éviter le plus possible les control dynamiques(non declare dans la page).
Tout à fait vrai, je suis vert en ASP .NET avec plein de bonne volonté, et des projets au-delà de mes connaissance... c'est ce que l'on appelle apprendre sur le tas (enfin au Québec) ! Je ne suis pas offusqué de me faire dire que mon expérience est limitée. C'est ma réalité !
Enfin, je n'ai pas le choix d'utiliser des contrôles dynamiques, Active Directory est toujours mis à jour, je dois donc faire une requête LDAP pour obtenir les dernières informations.
Je vais finir par trouver une solution.... de toute manière je n'ai pas le choix ..
Merci et s'il y a d'autres idées, alors je suis preneur.
Partager