2010-02-21 3 views
1

J'ai oublié de mentionner cette asp.net 2.0.événement DropDownList_OnSelectedIndexChanged, dans un UserControl ne déclenche pas sur la publication

Le contrôle utilisateur a un ID unique et il est chargé dans l'événement PageLoad. Le contrôle utilisateur est chargé dans un panneau et le panneau est à l'intérieur d'une partie WebPart. La liste déroulante a l'autopostback défini sur true.

EnableViewState = true dans la liste déroulante. Les éléments ListItems sont créés dans la méthode d'événement de pré-rendu de liste déroulante.

C'est pourquoi je ne comprends pas pourquoi il ne se déclenche pas, la liste déroulante est la seule chose qui provoque la publication sur ce contrôle utilisateur.

Les méthodes d'événement pour la liste déroulante doivent se produire car le contrôle utilisateur est chargé de nouveau dans la méthode de chargement de page lors de la publication.

Répondre

2

Assurez-vous qu'aucun événement OnLoad ou PageLoad ne reconfigure la source de données de la liste déroulante. Le recadrage des données avec un nouvel ensemble de données peut empêcher l'exécution du clickhandler.

assurez-vous que vous avez if (!Page.IsPostBack) autour dropdownlist.datasource = et dropdownlist.databind()

+0

Le seul endroit où les éléments de liste sont créés se trouve dans la méthode PreRender pour la liste déroulante. Aucune liaison de données n'étant utilisée, je crée simplement de nouveaux éléments de liste dans la méthode PreRender. – OutOFTouch

+0

La clé ici n'est pas d'ajouter de nouveaux éléments ou de relier du tout sur PostBack. – Bryan

+0

Je comprends que l'ajout des éléments annulera les événements s'ils sont effectués au mauvais point dans le traitement de la page, je pensais que l'onSelectedChangedEvent pour la liste déroulante se déclencherait puisque les éléments sont ajoutés dans les listes déroulantes pré-rendu mais la liste déroulante est en un UserControl et le contrôle de l'utilisateur est chargé dans le chargement de la page cela ferait-il une différence? – OutOFTouch

1

Je ne sais pas si c'est votre problème, mais c'est le plus commun.

Essayez avec EnableViewState ensemble à vrai pour le DropDownList

Si le ViewState est réglé sur false, le poste arrière de la selected Index ramène à défaut qui est normalement le premier élément. Le premier élément, s'il est sélectionné, ne déclenche pas l'événement SelectedIndexChange

+0

Ouais j'avais déjà mis à vrai. – OutOFTouch

Questions connexes