2010-06-22 49 views
1

我有一个fileUpload用户控制FileUploadControl.ascx包含asp.net文件上传控件和requiredfield验证器。如何把这个验证上的asp.net文件上传控制?

我有另一个用户控件RenderingTemplate.ascx包含两个FileUploadControl.ascx。

RenderingTemplate.ascx在RenderingTemplateDetails.aspx页面上,此页面有保存和取消按钮。

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

我无法使用Requiredfieldvalidator,因为它会触发两者。我尝试添加onclientclick页面保存按钮,并检查文件上传是否有一些文字,但我没有成功。

现在我想要这个功能成为控件的一部分,这样我就不必在每一页上重新编码它。在页面的保存按钮被点击时,在用户控件上会出现任何客户端事件。请帮助并提出一些解决方案。

回答

0

如果您添加自定义验证程序,该解决方案将变得更加容易。看看如何将客户端验证功能添加到自定义验证器。

添加自定义验证到两个文件上传,然后在客户端验证函数,将一个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和一些额外的逻辑来解决这个问题,但我认为这是我找到的最简单的实现。