У меня есть пользовательский валидатор на моей странице для управления загрузкой файлов.
<asp:FileUpload ID="fuVendorBrief" runat="server" />
<br />
<asp:CustomValidator ID="cvVendorBriefFile" Display="Dynamic" runat="server" ValidationGroup="EditorValidate" ControlToValidate="fuVendorBrief" OnServerValidate="cvVendorBriefFile_ServerValidate" ErrorMessage="You must upload a vendor brief PDF file.">
</asp:CustomValidator>
У меня также есть кнопка.
<asp:Button ID="btnSubmit" ValidationGroup="EditorValidate" OnClick="btnSubmit_Click" runat="server" Text="Add Vendor Brief" />
Я определил свое пользовательское событие валидатора кактак что ...
protected void cvVendorBriefFile_ServerValidate(object source, ServerValidateEventArgs args)
{
CustomValidator fileUploadValidator = (CustomValidator)source;
FileUpload vendorBriefFileUpload = (FileUpload)fileUploadValidator.Parent.FindControl(fileUploadValidator.ControlToValidate);
args.IsValid = vendorBriefFileUpload.HasFile && vendorBriefFileUpload.FileName.ToLower().EndsWith(".pdf");
}
Этот пользовательский валидатор даже не запускается.Может быть, я просто устал, но все выглядит хорошо для меня, поэтому понимание важно.Если я удаляю точку останова где-либо в событии проверки сервера, она не срабатывает, когда я нажимаю кнопку Отправить.Однако я могу нажать точки останова в событии нажатия кнопки отправки.
Любые идеи?
РЕДАКТИРОВАТЬ - Забыл упомянуть, что у меня есть другие элементы управления валидацией, такие как обязательные валидаторы полей,на странице, и они запускаются просто отлично.
РЕДАКТИРОВАТЬ 2 - Если вы хотите полный источник страницы и ее код позади, то перейдите по следующим ссылкам:
Дайте мне знать, если вы видите что-то странное.Я наполовину сплю здесь и надеюсь, что мне чего-то не хватает.