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

jululu Messages postés 18 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 14 juin 2009 - 16 mars 2009 à 10:24
jululu Messages postés 18 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 14 juin 2009 - 30 avril 2009 à 10:33
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

primactif Messages postés 119 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 3 octobre 2016 1
16 mars 2009 à 18:47
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
0
jululu Messages postés 18 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 14 juin 2009
16 mars 2009 à 19:28
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
0
jululu Messages postés 18 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 14 juin 2009
17 mars 2009 à 08:28
Je doit être un peut neuneu mais je n'y arrive toujours pas quelqu'un aurai une idée, je désespère
0
primactif Messages postés 119 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 3 octobre 2016 1
17 mars 2009 à 12:23
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PascalCmoa Messages postés 239 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 17 janvier 2013 5
17 mars 2009 à 17:37
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]
0
PascalCmoa Messages postés 239 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 17 janvier 2013 5
17 mars 2009 à 17:40
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]
0
hamoudaman Messages postés 8 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 30 avril 2009
30 avril 2009 à 01:14
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
0
jululu Messages postés 18 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 14 juin 2009
30 avril 2009 à 10:33
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.
0
Rejoignez-nous