Question

I écrire une ImageButton à une cellule de tableau dans une nouvelle rangée lorsqu'un utilisateur sélectionne un élément dans une liste:

ImageButton imgbtnRemove = new ImageButton();
imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.ImageUrl = items.remove;
imgStatus.AlternateText = "Remove";
tRow.Cells[3].Controls.Add(imgbtnRemove);

Lorsque le nouveau ImageButton est cliqué, je ne peux pas sembler obtenir une poignée à elle. Je le vois dans l'événement Page_PreRender, où je recharge également la table de chaque publication.

string returnData = Request.Form.ToString();

mais itérer sous forme contrôle des images:

if (c is System.Web.UI.WebControls.Button ||
c is System.Web.UI.WebControls.ImageButton)

ne le trouve pas. Je peux le trouver si je mets la main dans:

imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick);

dans le Page_Load puis le saisir en cas de clic:

switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...

mais parce qu'il ya de nouvelles lignes ajoutées et supprimées, cela devient assez laid programme. Je pense qu'il doit y avoir une solution élégante à la création ImageButton dynamique et la récupération à la volée à partir du code côté serveur. Je l'ai fait beaucoup de creuser, mais celui-ci me dessouchage.

Merci d'avance ...

Était-ce utile?

La solution

Si vous créez des contrôles dynamiques lors de la phase de gestion des événements du cycle de vie de la page (par exemple, dans l'élément événement sélectionné), le contrôle sera parti à la prochaine publication.

Pour les contrôles dynamiques pour être enregistrés auprès ViewState, ils doivent être créés dans la phase Init du cycle de vie de l'événement.

, dites-vous aussi nous parcourons les contrôles du formulaire ... quand vous ajoutez le ImageButton aux cellules de la table. Est-ce que vous récursive en descendant la hiérarchie de contrôle pour rechercher le ImageButton?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top