Puis-je ajouter par programmation un linkbutton à gridview?
J'ai été à la recherche à travers des questions similaires, sans aucune chance. Ce que je voudrais faire est d'avoir un gridview qui, pour certains items montre un linkbutton et pour les autres articles montre un lien hypertexte. C'est le code que j'ai actuellement:
public void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var data = (FileDirectoryInfo)e.Row.DataItem;
var img = new System.Web.UI.HtmlControls.HtmlImage();
if (data.Length == null)
{
img.Src = "/images/folder.jpg";
var lnk = new LinkButton();
lnk.ID = "lnkFolder";
lnk.Text = data.Name;
lnk.Command += new CommandEventHandler(changeFolder_OnCommand);
lnk.CommandArgument = data.Name;
e.Row.Cells[0].Controls.Add(lnk);
}
else
{
var lnk = new HyperLink();
lnk.Text = data.Name;
lnk.Target = "_blank";
lnk.NavigateUrl = getLink(data.Name);
e.Row.Cells[0].Controls.Add(lnk);
img.Src = "/images/file.jpg";
}
e.Row.Cells[0].Controls.AddAt(0, img);
}
}
où la première cellule est un TemplateField. Actuellement, tout s'affiche correctement, mais le linkbuttons ne soulèvent pas la Commande gestionnaire d'événements, et tous les boutons disparaissent sur la publication.
Des idées?
OriginalL'auteur pschorf | 2009-06-24
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devriez essayer de forcer un rebind de la GridView sur publication. Cela permettra d'assurer que tous les contrôles dynamiques sont recréés et leurs gestionnaires d'événements remis en place. Cela devrait également empêcher leur disparition après la publication.
OIE, appel
DataBind()
sur le contrôle GridView moment de la publication.OriginalL'auteur Cerebrus
Vous pouvez également ajouter ces dans le Row_Created événement, puis vous n'avez pas à défaire !Publication vérifier
OriginalL'auteur Mohsin Naeem
Pourquoi ne pas créer le bouton de manière déclarative, et de créer le tiret de manière déclarative (à l'aide d'un littéral de contrôle) et l'utilisation de la liaison de données de la syntaxe et de définir la visibilité qui est la propriété Visible du contrôle de vrai ou faux:
Quelque chose comme ça.
OriginalL'auteur Chris Mullins