Контроль статики на странице

Этот вопрос немного сложен, если что-то не понятно, пожалуйста, попросите объяснить.

Это происходит на всех страницах, которые следуют этой логике:

  • Asp:ValidationSummary в верхней части страницы
  • Некоторые валидаторы на стороне клиента
  • Один Telerik RadUpload управления

Проблема возникает, когда запускается валидатор на стороне клиента и его сообщение об ошибке отображается в элементе управления ValidationSummary. Каждый элемент управления на странице "скользит" вниз, чтобы создать пространство для элемента управления ValidationSummary, но RadUpload остается на том же месте и оказывается поверх какого-либо другого элемента управления.

Если я заставлю браузер повторно выполнить рендеринг страницы (в качестве примера изменим масштаб до 125%, а затем обратно до 100%), RadUpload отобразится там, где он должен быть (сдвинут вниз, чтобы освободить место для элемента управления ValidationSummary).

У кого-нибудь есть решение этой проблемы? Прямо сейчас я пытаюсь использовать javascript для принудительного обновления, но это не так просто...

1 ответ

Весьма вероятно, что проблема заключается в стилизации страницы - здесь есть позиция: относительная ошибка для IE. Если есть прокручиваемый контейнер, добавьте положение: относительно него, и проблема должна исчезнуть.

Другой вариант - перерисовать элемент управления RadUpload, вызвав такой скрипт:

var upload = document.getElementById('<%= RadUpload1.ClientID');
upload.style.cssText = upload.style.cssText;

или активируйте IE hasLayout, добавив следующий CSS:

.RadUpload { zoom: 1 !important }

(выбор зависит от используемой версии пакета - я предполагаю, что ASP.NET AJAX после 1 квартала 2009 года)

Другие вопросы по тегам