Не знаю правильного решения этой проблемы или причины, по которой это происходит, но вот грязный обходной путь.
1. Добавить этот скрипт
<script type="text/javascript" language="javascript">
function pageLoad() {
// if we did not redefined the '__doPostBack' method yet
if (typeof window.__doPostBack_original == "undefined") {
// save the original method
window.__doPostBack_original = window.__doPostBack;
// redefine it
window.__doPostBack = function (eventTarget, eventArgument) {
document.getElementById('<%=hdnLastFocus.ClientID %>').value = eventTarget;
var retval = window.__doPostBack_original(eventTarget, eventArgument);
return retval;
};
}
window.onload = document.getElementById('<%=hdnLastFocus.ClientID %>').focus();
}
</script>
2. Удалить панель обновления
3. Добавить это скрытое поле
<asp:HiddenField ID="hdnLastFocus" runat="server" />
Надеюсь, это поможет ...:)
P.S. Фокус украден до обратной передачи, а затем возвращен после возвращения обратной передачи, поэтому, если элемент управления редактора далек от текущего фокуса, он выглядит некрасиво, потому что экран переходит с одного на другой и обратно. Но если ваша страница относительно мала по высоте, она может удовлетворить ваши потребности.