Porque necesitas dos commandfield. Por un maestro detalle?
Utiliza la propiedad commandname y el elemento ButtonField en lugar del commandfield
Código ASP:
Ver original<asp:GridView runat="server" OnRowCommand="RowCommandHandler">
<asp:ButtonField CommandName="Select1" Text="Select" />
<asp:ButtonField CommandName="Select2" Text="Select" />
</asp:GridView>
Luego en el código behind
Código ASP:
Ver originalprotected void RowCommandHandler(object sender, GridViewRowEventArgs e)
{
if(e.CommandName = "Select1")
{
// Do selects for the first datagrid
}
else
{
// Do selects for the second datagrid
}
Tambien puedes obtener una referencia a la fila que dispará el evento
Código ASP:
Ver originalprotected void RowCommandHandler(object sender, GridViewRowEventArgs e)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = (sender as GridView).Rows[rowIndex];
}
o colocas el CommandArgument como parte de tu databind. Cuando estoy haciendo algo como esto usualmente coloco el CommandArgument de mi button(x) como la clave principal del elemento hijo que deseo seleccionar de la siguiente forma
Código ASP:
Ver originalprotected void RowCommandHandler(..)
{
int childKey = Convert.ToInt32(e.CommandArgument);
if(e.CommandName="FirstCommand")
{
SelectSomeDataForTheFirstCommand(childKey);
}
}
Espero esto te ayude