Проверка на странице загрузки обработки элементов управления полем SharePoint как пустое
-
16-10-2019 - |
Вопрос
В конкретной форме элемента пользовательского списка, которую я делаю для своего веб -приложения WSS 3.0, я обязан проверять страницу при загрузке, так что любые ошибки, которые пользователь делает из предыдущего сохранения, немедленно отмечались. Я сейчас делаю это, используя Page.Validate()
в OnLoad
метод
Со всеми TextBox
а также RadioButtonList
управления, которые я заполняю (также на загрузке страницы), я могу просто заполнить их, прежде чем запустить кучу InputFormCustomValidator
Управление на странице. Для этих элементов управления все ясно, а правильно заполненные поля не отмечены как недействительные.
Но для UserField
а также DateTimeField
Элементы управления, он будет рассматривать их как пустые для проверки нагрузки страницы, независимо от того, есть ли они данные в них. Это происходит как при использовании фактического UserField
а также DateTimeField
управления, которые автоматически извлекают данные на основе запроса идентификатора элемента и при использовании базового PeopleEditor
а также DateTimeControl
Элементы управления, которые я предварительно пропадаю на странице, загружается как текстовые поля.
После того, как появился пост, который требует проверки, проверка должным образом распознает содержимое этих полей.
Есть ли что -то, что я могу сделать, чтобы обойти это, так что правильно заполненные пользовательские и датерные поля нет помечен как недействительный при загрузке страницы? Должен ли я запустить проверку другим методом, чем OnLoad
? Лично я хотел бы сохранить поля как UserField
а также DateTimeField
Вместо того, чтобы использовать базовые элементы управления, но это ограничивает меня неспособностью определить, когда они заполняются. Если решение состоит в том, чтобы перенести предварительную заполнение управления на более раннюю стадию во времени, я могу согласиться на это, но он остается предпочтительным не делать этого, если это может быть исправлено другим способом.
Решение
Вы пробовали позвонить в EncureChildControls () до .validate ()? Кроме того, если вы динамически создаете/загружаете элементы управления, это обычно выполняется в событии CreateChildControls (), а не в OnLoad (), поскольку большинство пользовательских элементов управления должны участвовать в событиях до загрузки ().
Другие советы
Возможно, попробуйте перемещать страницу.