Когда постбэк завершится, вы можете запустить фрагмент JavaScript, который уберет фокус из текстового поля (например, он больше не будет принимать текст), а затем вы можете сразу же повторно сфокусироваться на текстовом поле (чтобы он принимал текст снова). Это может «сбросить» курсор, чтобы он правильно отображался.
Попробуйте добавить это в свой ASPX, желательно за пределами UpdatePanels:
<script type="text/javascript">
function fixTextBoxFocus()
{
var textBox = document.getElementById("<%= TextBox1.ClientID %>");
textBox.blur(); //Remove the focus from the text box.
textBox.focus();//Re-focus on the textbox.
}
</script>
И затем, в вашем коде (замените MyPage
названием класса вашей страницы):
protected void Timer1_Tick(object sender, EventArgs e)
{
this.ClientScript.RegisterStartupScript(typeof(MyPage), "fixTextBoxFocus", "fixTextBoxFocus();", true);
}
Теперь, когда происходит частичный постбэк, этот скрипт будет выполняться каждый раз. Попробуйте и дайте мне знать, если это поможет решить проблему.