ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010
-
28 mai 2009 à 14:55
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
30 mai 2009 à 13:54
Bonjour, je veux ouvrir la page correspondante à la cellule cliquée de
la colonne "Username" et j' ai fait comme suit:
Dans ma page .ascx il ya:
</Columns>
Et dans ma page ascx.cs il ya:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int NumLigne = Convert.ToInt32(e.CommandArgument);
string sId = GridView1.Rows[2].Cells[2].Text;
Response.Redirect(("Default.aspx?ID=" + sId));
}
J'obtiens pas le resultat que je veux. Pouvez-vous m'aider?
Merci.
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index;
string cle;
if (e.CommandArgument == "UserID")
{
// "index" représente l'indice de la ligne de la gridview
index = Convert.ToInt32(e.CommandArgument);
// instancier une ligne de la gridview
GridViewRow row_grid = GridView1.Rows[index];
// récupérer la valeur de la premiere cellule de la ligne
cle = row_grid.Cells[1].Text;
Response.Redirect("Default.aspx?ID=" + cle);
}
}
ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010 29 mai 2009 à 11:00
Le probléme de dirction est réglé mais j'ai une exception de depassement. Avec le code qui suit, je veut parcourir la première colonne de mon gridview et quand je clique sur une cellule de cette colonne, je sois dirigé vers 1 page specifique que j'ai indiqué avec la redirection.
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index=GridView1.Rows[1].Cells.Count;
string cle;
for (int i = 0;i < index; i++)
if (e.CommandName == "Editer")
{
{
index = Convert.ToInt32(e.CommandArgument);
GridViewRow row_grid = GridView1.Rows[index];//L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre : index
cle = row_grid.Cells[i].Text;
Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(43, "Edit", "mid=" + 355, "UserID=" + cle));
}
}
}
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 30 mai 2009 à 13:54
C'est un peu normal
tu modifies index dans la boucle
utilise des variables bien nommées.
Relit ton code a voit haut et dessine sur un papier pour essayer de comprenndre.
Exemple
index = Convert.ToInt32(e.CommandArgument); dans la boucle aura toujours la meme valeur
donc a sortir de la boucle
idem pour
GridViewRow row_grid = GridView1.Rows[index];
donc il y a que cette partie qui est variable
cle = row_grid.Cells[i].Text;
Response.Redirect(DotNetNuke.Common.Globals.NavigateURL(43, "Edit", "mid=" + 355, "UserID=" + cle));
Sachant que le response.redirect casse la boucle
donc tu n'as qu'un tour de boucle.
Evite de mettre des valeur en dur dans un code (43,355)
les constantes et les enums sont la pour remplacer ce type de valeur