Ya 5 años de éste post
Cita: Unable to cast object of type 'System.Web.UI.WebControls.DataControlLinkButton'
El mismo error lo indica, no es lo mismo un button que un linkbutton, podrías hacerlo de ésta forma:
Código:
if (e.Row.RowType == DataControlRowType.DataRow) {
LinkButton btn = (LinkButton)e.Row.Cells["celdaX"].Controls[0];
btn.OnClientClick = "window.open('pagina.aspx','',''); return false;";
}