Call
Page.Validate() on your button click :
protected void yourButton_Click(Object sender, EventArgs e)
{
Page.Validate();
if(Page.IsValid)
{
}
}
[[Edit]]
Here i have created one small solution. And it worked perfectly :
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="fuCheatingEvidence" runat="server" Width="890px" Size="50" />
<asp:CustomValidator ID="cvFileUpload" runat="server" ErrorMessage="Please select file!"
ControlToValidate="fuCheatingEvidence" OnServerValidate="cvFileUpload_ServerValidate"
ValidationGroup="vgSubmitForm" ValidateEmptyText="True"></asp:CustomValidator>
<asp:Button ID="bthUpload" runat="server" Text="Upload" ValidationGroup="vgSubmitForm" OnClick="bthUpload_Click" />
</div>
</form>
protected void bthUpload_Click(object sender, EventArgs e)
{
}
protected void cvFileUpload_ServerValidate(object source, ServerValidateEventArgs args)
{
String fileName = fuCheatingEvidence.PostedFile.FileName;
if (fileName != "")
{
args.IsValid = true;
}
else
{
args.IsValid = false;
}
}