If you have a requirement in which you have many textbox controls and you want to enforce the user to fill at least one of them, then you can simply use a custom validator control with a client side function like this :
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function ValidatePhone(src, args) {
var txtHomePhone = document.getElementById('<%= txtHomePhone.ClientID %>');
var txtMobilePhone = document.getElementById('<%= txtMobilePhone.ClientID %>');
var txtOfficePhone = document.getElementById('<%= txtOfficePhone.ClientID %>');
if (txtHomePhone.value == '' && txtMobilePhone.value == '' && txtOfficePhone.value == '') {
args.IsValid = false;
return;
}
args.IsValid = true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtHomePhone" runat="server"></asp:TextBox>
<asp:TextBox ID="txtMobilePhone" runat="server"></asp:TextBox>
<asp:TextBox ID="txtOfficePhone" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Enter at least one phone number"
ValidateEmptyText="true" ClientValidationFunction="ValidatePhone" Display="Dynamic"
ControlToValidate="txtHomePhone"></asp:CustomValidator>
<asp:Button ID="btnValidate" runat="server" Text="Validate" />
</div>
</form>
</body>
</html>