Ajouter dynamiquement un bouton de commande pour un contrôle GridView

Je vais avoir un problème avec la tentative d'ajout d'un bouton de ma grille. Mon GridView est chargée pour la première fois avec les données de l'événement PageLoad.

Je suis ensuite prendre les données dans la première cellule de chaque ligne, et de créer un bouton qui permettra de lien vers une URL. Pour obtenir l'URL, j'ai exécuter une requête avec les données de la première cellule en tant que paramètre. Je faisais ça dans le RowDataBound cas au premier abord, mais en appuyant sur cette requête pour chaque ligne le faisait vraiment lent.

J'ai donc décidé d'ajouter un bouton qui permettrait de récupérer l'URL que lorsque vous avez cliqué sur le bouton.

Voici mon GridView:

<asp:GridView ID="gvResults" runat="server"
    OnRowDataBound="gvResults_RowDataBound"
    OnRowCommand="gvResults_RowCommand">               
</asp:GridView>    

Et mon code:

protected void gvResults_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.DataItem != null)
    {
        LinkButton lb = new LinkButton();
        lb.CommandArgument = e.Row.Cells[0].Text;
        lb.CommandName = "NumClick";
        lb.Text = e.Row.Cells[0].Text;

        e.Row.Cells[0].Controls.Add((Control)lb);
    }
}


protected void gvResults_RowCommand(object sender, CommandEventArgs e)
{
    switch (e.CommandName.ToLower())
    {
        case "numclick":
            string url = GetUrl(e.CommandArgument.ToString());
            Response.Redirect(url);
            break;
        default:
            break;
    }
}

La grille génère fine, le bouton est ajouté à la grille pour chaque ligne. Mais quand je clique dessus, la RowCommand événement n'est pas déclenché, et la page se rafraîchit.

Personne ne sait ce qu'est la question?

Je voudrais associer un ID pour le linkButton avant de l'ajouter à la Cellule.

OriginalL'auteur Steven | 2011-01-19