Uma das coisas que me perguntam é como implementar o DefaultButton em um Form/Panel quando estamos em uma edição dentro de um controle DataBound, como é o caso do GridView.
Para fazer isso funcionar, não tem lá muito segredo: basta interceptar a renderização do controle no evento PreRender e verificar se o mesmo está em modo de edição. Para isso, podemos utilizar a propriedade EditIndex, que retorna um valor inteiro indicando se o GridView está com algum linha em mode de edição. Caso esteja, voce acessa a linha em questão e procura pelo controle (button) que deverá ter seu evento Click disparado quando a tecla Enter for pressionada. Quando encontrado, voce recupera a propriedade UniqueID e atribui a mesma na propriedade DefaultButton do Form/Panel. Um exemplo simples é mostrado abaixo:
protected void GridView1_PreRender(object sender, EventArgs e)
{
if (this.GridView1.EditIndex > -1)
{
this.form1.DefaultButton =
this.GridView1.Rows[this.GridView1.EditIndex].Cells[0].Controls[0].UniqueID;
}
}
A propriedade UniqueID retorna uma string representando o nome do controle (e, neste caso, do botão de edição) dentro da hierarquia de sub-controles dos controles DataBound.