Текстовое поле получает фокус, но вы ничего не можете ввести - PullRequest
1 голос
/ 18 июня 2009

У меня есть вид сетки ASP.NET, в котором в строке нижнего колонтитула есть текстовые поля ввода данных.После того, как пользователь добавляет строку, я сбрасываю фокус на первое текстовое поле в кодовой области, используя что-то вроде Textbox1.focus () в обработчике обновления gridview.Проблема заключается в том, что хотя текстовое поле выглядит как фокус (курсор мигает в текстовом поле), вы ничего не можете ввести, пока не нажмете другое текстовое поле в форме и не нажмете назад.Это только кажется, что происходит в IE8.Когда я проверил это в Firefox, текстовое поле сфокусировалось, и я смог правильно ввести новый текст.

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 20 июня 2009

Все еще не нашли решения, но я только заметил, что, когда IE8 находится в режиме совместимости, текстовое поле функционирует как ожидалось. Это третья проблема, связанная с режимом совместимости IE8.

0 голосов
/ 29 декабря 2010

У меня была похожая проблема, когда текстовое поле на панели обновлений не позволяло пользователю взаимодействовать, несмотря на то, что он имел фокус, пока не потерял фокус и не получил его обратно. Как и в оригинальном постере, это происходило только в IE8 в режиме несовместимости.

Я реализовал следующий обходной путь, который, кажется, делает свое дело:

ScriptManager.GetCurrent(Me.Page).SetFocus(txtAnotherTextBox)
ScriptManager.RegisterStartupScript(Me, Me.GetType, "Focus", _
"setTimeout(function() { document.getElementById('" _
& txtTextBox.ClientID & "').focus(); }, 200);", True)

В основном, я сначала фокусируюсь на другом элементе управления, затем регистрирую скрипт, чтобы сосредоточиться на элементе управления, который я хотел с задержкой 200 мс.

...