Контроль статики на странице
Этот вопрос немного сложен, если что-то не понятно, пожалуйста, попросите объяснить.
Это происходит на всех страницах, которые следуют этой логике:
- 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 года)