Я не претендую на то, что это решение хорошо, но вы можете использовать jQuery и скрытую кнопку отмены:
$(document).ready(function() {
$(this).keypress(function(e) {
if (e.keyCode == 27) {
e.preventDefault();
$('#<%= cancelButton.ClientID %>').click();
}
});
});
, что означает только то, что когда пользователь нажимает escape, щелкает скрытая кнопка.
<div style="display:none">
<asp:Button runat="server" ID="cancelButton" OnClick="CancelButton_Click"/>
</div>
В Click-Event кнопки вы отменяете режим редактирования (учитывая, что GridView имеет ID = "grid"):
protected void CancelButton_Click(object sender, EventArgs e)
{
if (grid.EditIndex != -1)
{
grid.EditIndex = -1;
grid.DataBind();
}
}
К сожалению, я не знаю, как напрямую получить доступ к кнопке отмены в строке вида сетки.