Вам не нужно использовать команды выбора. Вы можете использовать поля шаблона и добавить к нему именованную команду, затем вы можете проверить, какие из них были нажаты в событии RowCommand (и вы также можете получить индекс строки), см. ниже.
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="MyCommand" Text="Button" CommandArgument='<%# Container.DataItemIndex %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
Событие RowCommend ниже
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if(e.CommandName.Equals("MyCommand"))
{
int row = Int32.Parse(e.CommandArgument.ToString());
}
}