c# gridview ligne cliquez sur
Quand je clique sur une ligne dans mon GridView, je veux aller à une autre page avec l'ID-je obtenir à partir de la base de données.
Dans mon RowCreated événement, j'ai la ligne suivante:
e.Row.Attributes.Add(
"onClick",
ClientScript.GetPostBackClientHyperlink(
this.grdSearchResults, "Select$" + e.Row.RowIndex));
Pour éviter les messages d'erreur, j'ai ce code:
protected override void Render(HtmlTextWriter writer)
{
//.NET will refuse to accept "unknown" postbacks for security reasons.
//Because of this we have to register all possible callbacks
//This must be done in Render, hence the override
for (int i = 0; i < grdSearchResults.Rows.Count; i++)
{
Page.ClientScript.RegisterForEventValidation(
new System.Web.UI.PostBackOptions(
grdSearchResults, "Select$" + i.ToString()));
}
//Do the standard rendering stuff
base.Render(writer);
}
Comment puis-je donner une ligne un ID unique (à partir de la DB) et quand je clique sur la ligne, une autre page est ouverte (comme le clic sur un href) et que la page peut lire l'ID.
Vous devez vous connecter pour publier un commentaire.
J'ai la solution.
C'est ce que j'ai fait:
J'ai mis le code précédent dans le RowDataBound événement.
Martijn,
Voici un autre exemple avec quelques chouettes ligne en surbrillance et un href curseur de style:
Le code ci-dessus fonctionne .NET 3.5. Cependant, vous ne pouvez pas définir votre id de la colonne " Visible="false" parce que vous obtiendrez une requête vide de la chaîne de valeur pour votre id de clé:
Afin de modifier la première colonne de ce lieu:
Ajouter cette css en haut de votre page:
Mais pour cacher la première cellule de votre ligne d'en-tête, ajoutez ceci à votre gvSearch_RowDataBound() dans le code-behind:
Évidemment, vous pourriez avoir caché la colonne id dans le code-behind trop, mais cela se traduira par plus de texte dans votre balisage qu'une classe css:
Votre ID d'être lié à l'élément de données affichées dans le contrôle gridview?
Si oui, vous pouvez utiliser l'e.Ligne.DataItem, et de voter pour elle pour ce type elle est.
Vous pouvez utiliser le RowCommand cas de l'affichage de la grille pour elle. Dans votre bouton/lien où vous wnat pour définir le, cliquez sur définir la CommandName et CommandArgument, que vous pouvez y accéder à l'EventArgs paramètre de la méthode d'événements.
ligne cliquez dans la vue de grille rediriger vers une autre page
fonctionne tout à fait bien
JohnB, Votre code fonctionne très bien, j'ai ajouté juste un petit hack pour éviter alternatingRowStyle ruiner après mouseout.
Changé:
Si il y a une meilleure façon de le faire, s'il vous plaît laissez-moi savoir, mais il travaille parfait pour moi.
Salutations.