omo implementar a seleção de linha completa no GridView sem o botão de seleçã

Estou implementando um recurso que, quando o usuário pressionar qualquer ponto da linha em um GridView, a linha será selecionada em vez do botão Seleciona

Para implementar isso, estou usando o seguinte código:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // Set the hand mouse cursor for the selected row.
        e.Row.Attributes.Add("OnMouseOver", "this.style.cursor = 'hand';");

        // The seelctButton exists for ensuring the selection functionality
        // and bind it with the appropriate event hanlder.
        LinkButton selectButton = new LinkButton()
        {
            CommandName = "Select",
            Text = e.Row.Cells[0].Text
        };

        e.Row.Cells[0].Controls.Add(selectButton);
        e.Row.Attributes["OnClick"] =
             Page.ClientScript.GetPostBackClientHyperlink(selectButton, "");
    }
}

Com o código acima, existem os seguintes problemas:

Isso funciona bem apenas se euEnableEventValidation para a página está definido comofalse.OSelectedIndexChanged é acionado apenas no caso deGrid.DataBind() é chamado emPage_Load para a página (em cada postagem

Estou fazendo algo errado? Existe uma implementação melhor?

Editar QuandoEnableEventValidation está configurado paratrue, o seguinte erro será exibido:

Postback inválido ou argumento de retorno de chamada. A validação de evento é ativada usando-se na configuração ou <% @ Page EnableEventValidation = "true"%> em uma página. Por motivos de segurança, esse recurso verifica se os argumentos para eventos de postagem ou retorno de chamada se originam do controle do servidor que os renderizou originalmente. Se os dados forem válidos e esperados, use o método ClientScriptManager.RegisterForEventValidation para registrar os dados de postagem ou retorno de chamada para validaçã

questionAnswers(5)

yourAnswerToTheQuestion