<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns = "false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text='<%#Eval("CustomerID")%>'
CommandArgument = "Button1"OnClick = "Button1_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Many occasions you will need the properties of the Button like its CommandName, CommandArgument. So in that case you will need to get the reference of the Button using the sender parameter.
C#
protected void Button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
string CommandName = btn.CommandName;
string CommandArgument = btn.CommandArgument;
}
VB.Net
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim btn As Button = CType(sender, Button)
Dim CommandName As String = btn.CommandName
Dim CommandArgument As String = btn.CommandArgument
End Sub
Reference: ASP.Net GridView - Get Row Index on RowCommand and Click events