Récupéré l'index du bouton sur sur lequel on click (dans une gridview - ButtonFi

Signaler
Messages postés
18
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
14 juin 2009
-
Messages postés
18
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
14 juin 2009
-
Bonjour;
j'ai un souci et malgré toute les réponses a ce sujet je n'ai pas réussi a trouvé la solution : ( j'aimerai récupéré l'index du bouton sur lequel je click (dans une gridview - ButtonField) merci <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

8 réponses

Messages postés
119
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
3 octobre 2016
1
Salut

moi j'utilise la méthode suivante

Ici un ImageButton et j'utilise CommandArgument pour doner l'ID concerné










<


asp


:


ImageButton





runat


="server"





ID


="BtDelete"





ImageUrl


="~/Images/Poubelle.png"





CausesValidation


="true"





CommandArgument


='

<%# Eval("DetCdeId") %>


'





OnClick


="BtDelete_Click"





/>



et côté VB

Protected
Sub BtDelete_Click(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.ImageClickEventArgs)FormViewCde.UpdateItem(

True)MyCde.UpdatePanier(sender.CommandArgument, 0)

MyCde.GetCommande(Profile.UserName)

MyCde.CalculCommande(MyCde.CdeId, Profile.CulturePreferee)

GridViewPanier.DataBind()

FormViewCde.DataBind()

End
Sub

Bruno POUPON webmaster@primactif.com
Messages postés
18
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
14 juin 2009

Merci pour cette réponse rapide j'ai oublier de préciser que ct en  c#.net ,le bouton est dans une gridview, je voudrai récupéré la ligne sur lequel le bouton est cliqué. Je v quand meme regardé merci
Messages postés
18
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
14 juin 2009

Je doit être un peut neuneu mais je n'y arrive toujours pas quelqu'un aurai une idée, je désespère
Messages postés
119
Date d'inscription
vendredi 27 décembre 2002
Statut
Membre
Dernière intervention
3 octobre 2016
1
Bon je te met le code, malheureusement en VB mais il y a des outils ici  http://tools.codes-sources.com/DotNetCodeConverter.aspx

<%

@
Page
Language="VB"
AutoEventWireup="false"
CodeFile="Test1.aspx.vb"
Inherits="Test1" %>
<!

DOCTYPE
html
PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><

html
xmlns="http://www.w3.org/1999/xhtml"><

head
runat="server">

<title></title></

head><

body>

<form
id="form1"
runat="server">

<div><

asp:GridView
ID="GridView1"
runat="server"
AllowPaging="True"

AllowSorting="True"
AutoGenerateColumns="False"
DataKeyNames="CruId"

DataSourceID="SqlDataSource1">

<Columns>

<asp:TemplateField
ShowHeader="False">

<ItemTemplate>

<asp:LinkButton
ID="LinkButton1"
runat="server"
CausesValidation="False"

CommandName="Select"
Text="S‚lectionner"></asp:LinkButton>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField
HeaderText="CruId"
InsertVisible="False"

SortExpression="CruId">

<EditItemTemplate>

<asp:Label
ID="Label1"
runat="server"
Text='<%# Eval("CruId") %>
'></asp:Label>

</EditItemTemplate>

<ItemTemplate>

<asp:Label
ID="Label2"
runat="server"
Text='<%# Bind("CruId") %>
'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField
HeaderText="Cru_NomFR"
SortExpression="Cru_NomFR">

<EditItemTemplate>

<asp:TextBox
ID="TextBox1"
runat="server"
Text='<%# Bind("Cru_NomFR") %>
'></asp:TextBox>

</EditItemTemplate>

<ItemTemplate>

<asp:Label
ID="Label1"
runat="server"
Text='<%# Bind("Cru_NomFR") %>
'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField
ShowHeader="False">

<ItemTemplate>

<asp:Button
ID="Button1"
runat="server"
CausesValidation="false"
CommandName='<%# Eval("CruId") %>
'

Text="Bouton"
onclick="Button1_Click"
/>

</ItemTemplate>

</asp:TemplateField>

</Columns></

asp:GridView><

asp:SqlDataSource
ID="SqlDataSource1"
runat="server"

ConnectionString="<%$ ConnectionStrings:BOUTIQUEConnectionString %>
"

SelectCommand="SELECT [CruId], [Cru_NomFR] FROM [Crus]"></asp:SqlDataSource>

</div>

</form></

body></

html>////////////////

et coté VB

Partial

Class Test1

Inherits System.Web.UI.Page 

Sub Button1_Click(
ByVal sender
As
Object,
ByVal e
As EventArgs)

'On r‚cupŠre l'ID de la ligne s‚lectionn‚

Dim IdSelect
As
Integer = sender.CommandName

End
SubEnd

Classj'ai testé ça marche

Bruno POUPON webmaster@primactif.com
Messages postés
239
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
17 janvier 2013
5
Bonjour,

C'est assez simple en fait.
Il faut donner un commandName au gridView. Cette action sera à placer dans un ButtonField (Lien, Image ou Bouton).
Ensuite sur l'évènement onRowCommand faire:

if e.CommandName.Equals("maCommande") then
' Je récupère le numéro de la ligne sélectionnée.
Dim index as integer = Convert.ToInt32(e.CommandArgument)
' Je récupère la ligne sélectionnée
Dim row as GridViewRow = monGridView.Rows(index)
' Je peux maintenant avoir accès à tous mes champs
Dim monId as Integer = Integer.Parse(row.Cells(0).Text) ' Par exemple
...
Traitement à réaliser
...
end if

A toi de jouer maintenant. A+

PascalCmoa
[mailto:pascal.aknouche@free.fr email: PascalCmoa]
Messages postés
239
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
17 janvier 2013
5
Oups j'ai oublié

tu peux maintenant avec ma méthode accéder à ton bouton en faisant:
dim monBouton as Button = CType(row.FindControl("leBouton"), Button)
ensuite tu pourras récupérer l'index en faisant: monBouton.ClientID

PascalCmoa
[mailto:pascal.aknouche@free.fr email: PascalCmoa]
Messages postés
8
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
30 avril 2009

bonjour, voila pour récupérer l'indexe dans ton grid moi j'utilise cette astuce:
d'abord si tu remplis ton grid dans la page loader tu auras une erreur du genre cause validation enable = false .....
donc il faut remplire ton grid dans:

if (!IsPostBack)
        {
            Remplire_GridCategorie();     // exemple de nom de mon grid
        }

ensuite tu ajoute une colonne dans ton grid avec un button ou image button et dont sont commandeargument tu le met eval quelque chose qui contient ta ligne
exemple dans mon grid jai mis:
' onclick="Modifier_Click"   ToolTip="Modifier" />

la clé primair Ligne c'est une colonne dans mon grid voila comment je lé remplie:
DataTable dTable = new DataTable();
DataRow dRow = null;
dTable.Columns.Add("Ligne");
dTable.Columns.Add("Id");
dTable.Columns.Add("Categorie");
for (int i = 0; i < List_Categorie.Count; i++)
            {
                dRow = dTable.NewRow();
                dRow["Ligne"] = i; // i allant de 0 jusqu'a la longeur de ma liste(list catégorie)
                dRow["Id"] = "tu peut mettre ce que tu veux comme id ou autre chose";
                dRow["Categorie"] = "bla bla bla bla"; // ...etc

                dTable.Rows.Add(dRow);
                dTable.AcceptChanges();
            }
            GridCategorie.DataSource = dTable;
            GridCategorie.DataBind();

voila tou j'èspéere que c'est s'imple si t'as pas bien compris envois moi un mail sur hamoudaman@yahoo.fr et je t'envérai un petit projet c# et bonne chance
Messages postés
18
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
14 juin 2009

Merci a vous g trouvé la solution. j'avais juste converti mes champ en TemplateField  alor que ce n'était pas nécesaire  . Merci a vous.