如何将此验证放在asp.net文件上载控件上?

如何将此验证放在asp.net文件上载控件上?,asp.net,Asp.net,我有一个fileUpload用户控件FileUploadControl.ascx,其中包含asp.net fileUpload控件和requiredfield验证器 我还有另一个usercontrol RenderingTemplate.ascx,它包含两个FileUploadControl.ascx RenderingTemplate.ascx位于RenderingTemplateDetails.aspx页面上,此页面具有保存和取消按钮 现在我的要求是,如果用户在一个fileupload控件中

我有一个fileUpload用户控件FileUploadControl.ascx,其中包含asp.net fileUpload控件和requiredfield验证器

我还有另一个usercontrol RenderingTemplate.ascx,它包含两个FileUploadControl.ascx

RenderingTemplate.ascx位于RenderingTemplateDetails.aspx页面上,此页面具有保存和取消按钮

现在我的要求是,如果用户在一个fileupload控件中选择一个文件,他也必须在另一个控件中选择。如果他没有选择任何文件,就让回发发生

我不能使用Requiredfieldvalidator,因为它同时为这两种类型启动。我尝试添加onclientclick to page save按钮并检查文件上载中是否包含一些文本,但没有成功


现在我希望这个功能成为控件的一部分,这样我就不必在每一页上重新编码。usercontrol上是否存在任何客户端事件,当单击页面的“保存”按钮时会触发该事件。请提供帮助并提出一些解决方案。

如果添加自定义验证器,解决方案将变得更简单。看看如何将客户机验证功能添加到自定义验证器

将自定义验证器添加到两个文件上载中,然后在客户端验证函数中放置一个javascript函数, 下面是一个简单的例子:


function ValidateUpload(source,args){
   //assume f1 and f2 are your file upload controls:
   var f1 = document.getElementById('f1'); //in case of asp.net control use clientID
   var f2 = document.getElementById('f2');
   if(f1.value == f2.value)
     args.IsValid = true;
   else
     args.IsValid = false;
}

注意:您也可以使用单个自定义验证器,也可以使用source和args.Value以及一些额外的逻辑来解决这个问题,但我认为这是我发现的最简单的实现