Придется дважды щелкнуть, чтобы развернуть DropDownList в ASP.NET - PullRequest
2 голосов
/ 09 декабря 2008

Я унаследовал проект ASP.NET 2.0, и я заметил, что пользователь должен дважды щелкнуть dropdownlist, чтобы расширить его - почему это так?

Последовательность событий

  1. Первый щелчок дает фокус управления, а второй расширяет его.
  2. Приложение использует страницы Master / Content и поддерживает Ajax.

Похоже, что это не происходит в IE6, но происходит в IE7.

Ответы [ 5 ]

1 голос
/ 10 декабря 2008

Нашел и отсортировал (пока).

Проблема была вызвана функцией Javascript, которая была вставлена ​​пользовательским контролем и добавляла стилизацию в DropDownLists. Почему это не было сделано в CSS, я понятия не имею (но это будет в ближайшее время), но комментирование следующей функции решило мою проблему:

    function inputOnFocus(objInput)
    {
        objInput.style.backgroundColor = sHighLightBgColor;
        objInput.style.border = sBorderHighlight;

        //objInput.className = "inputOnFocus";
        sIDWithFocus = objInput.id;
    }

Я не совсем уверен, как / почему это было применено к некоторым DDL, а не к другим, но в данный момент (с демонстрацией клиента), мне действительно все равно - я вникну в это, когда получу шанс.

Спасибо @LFSR Consulting, @Scott Evernden и @kogus за ваш вклад.

0 голосов
/ 30 марта 2010

Я знаю, что пишу в старой теме; Тем не менее, я хотел бы поделиться своими двумя центами по этому поводу, поскольку это может помочь любому в будущем.

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

Не вдаваясь в код, так как я не работаю с ASP.NET, просто часть javascript ... что я сделал, чтобы исправить это, так это создал еще одно событие для onmousedown. Если у меня есть только раздел onfocus, мне придется дважды щелкнуть в раскрывающемся списке. Один раз, чтобы установить фокус, другой, чтобы щелкнуть и перечислить элементы. Добавив функцию onmousedown, он позволил моим изменениям цвета происходить при нажатии, а также вкладке или другой форме смещения фокуса.

Конечно, нет необходимости иметь коллегу, так как onblur позаботился об этом (аналог onfocus).

0 голосов
/ 09 декабря 2008

Если вы используете IE7 и используете событие onFocus для этих выпадающих меню, взгляните на это:

http://forums.asp.net/p/1049119/1479078.aspx#1479078

В противном случае я мог бы предложить взглянуть на:

это вызов на сервер onFocus, при котором IsPostBack неправильно обрабатывается в Page_Load? рисует пробел для любых других идей ...

Можете ли вы добавить код, чтобы мы могли взглянуть?

0 голосов
/ 09 декабря 2008

Заполняются ли раскрывающиеся данные в событии раскрывающегося списка? Если это так, то простым решением было бы установить состояние DroppedDown в True в конце загрузки данных.

0 голосов
/ 09 декабря 2008

Не знаю, если это лучшее решение и не пробовали его ... но как насчет setfocus в onload () для рассматриваемого элемента управления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...