2011-04-27 4 views
0

j'ai une page a trois boutons, lorsque l'utilisateur clique sur le 1er contrôle je veux afficher le 1er contrôle de l'utilisateur, pour Bouton2 deuxième contrôle utilisateur et ainsi de suite ... Comment puis-je parvenir à Page_Init que nous ne knw qui bouton obtenu cliquéAjouter un contrôle utilisateur dynamique

+2

Pourquoi voulez-vous les ajouter dynamiquement? Rendez-les visibles en fonction du bouton sur lequel vous avez cliqué et masquez les autres dans le gestionnaire d'événements Button_Click. –

+0

coz cela rendra ma page très lourd – user685663

+1

@ user685663: contrôles dynamiques font votre vie beaucoup plus « lourd ». Vous ne devriez pas faire cela quand vous n'en avez pas besoin, car cela devient beaucoup plus difficile par exemple avec ViewState et les problèmes de gestion d'événements. En outre, les contrôles qui ne sont pas visibles ne seront pas rendus en HTML par ASP.Net, d'où votre page n'est pas "plus lourde" du tout. –

Répondre

0

vous pouvez trouver le bouton ID avec cette astuce dans l'événement Page_Init

string buttonID = Request["__EVENTTARGET"].ToString(); 

en buttonID dans la variable buttonID vous trouverez l'ID client du bouton ..

0

cela dépend comment vous voulez les afficher.

Il est plus facile d'avoir les contrôles cachés lorsqu'ils ne sont pas nécessaires et ne sont visibles lorsque cela est nécessaire.

Si vous souhaitez les ajouter dynamiquement la meilleure façon de les ajouter est d'ajouter le contrôle à un espace réservé lorsque vous en avez besoin. par exemple

ASP

<asp:PlaceHolder id="myPlaceHolder" runat="server"></asp:PlaceHolder> 

code derrière (C#)

myControl = new UserControl(); 
myPlaceHolder.Controls.Add(myControl); 

Mais il faut aussi se rappeler que pour pouvoir accéder au contrôle sur postback vous devez ajouter à nouveau sur soumettre/publication.

+0

maintenant je suis peu confus ... Je pensais que j'ai 5 contrôles utilisateur à la page, il sera beaucoup plus lourd ... donc je pensais à ajouter le contrôle dynamique qui, selon Schmelter est @ Tim pas ... – user685663

+0

Son quelque chose que je recommandez-vous l'essayer pour vous-même. Il peut être une bonne douleur dans le a ** pour traiter les contrôles ajoutés dynaliquement mais peut résoudre le problème que vous avez. – Dreaddan

Questions connexes