puedes usar una máscara realizada con java script
acá un ejemplo para introducir la hora y
minutos atraves de una mascara en un textbox.(hh:mm)
espero te sirva.
<%@ Import Namespace="System" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">
<HTML>
<HEAD>
<title>WebForm2</title>
<meta name="GENERATOR" content="Microsoft Visual
Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic
.NET 7.1">
<meta name="vs_defaultClientScript"
content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5";>
<script type="text/javascript">
var patron = new Array(2,2)
function mascara(d,sep,pat,nums){
if(d.valant != d.value){
val = d.value
largo = val.length
val = val.split(sep)
val2 = ''
for(r=0;r<val.length;r++){
val2 += val[r]
}
if(nums){
for(z=0;z<val2.length;z++){
if(isNaN(val2.charAt(z))){
letra = new RegExp(val2.charAt(z),"g")
val2 = val2.replace(letra,"")
}
}
}
val = ''
val3 = new Array()
for(s=0; s<pat.length; s++){
val3[s] = val2.substring(0,pat[s])
val2 = val2.substr(pat[s])
}
for(q=0;q<val3.length; q++){
if(q ==0){
val = val3[q]
}
else{
if(val3[q] != ""){
val += sep + val3[q]
}
}
}
d.value = val
d.valant = val
}
if (val.length==5){
hora=val.split(":")
if ((hora[0]>23) ||(hora[1]>59))
alert("Recuerde el formato de Horas, desde 00:00
hasta 23:59 ")}
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:TextBox size="6" id="hora"
onkeyup="mascara(this,':',patron,true)"
style="Z-INDEX: 101; LEFT: 184px; POSITION: absolute;
TOP: 104px"
maxlength="5" runat="server"></asp:TextBox>
<asp:Label id="Label1" style="Z-INDEX: 102; LEFT:
64px; POSITION: absolute; TOP: 104px" runat="server"
Width="96px" Height="24px">Ingrese
Hora</asp:Label>
<asp:Label id="Label2" style="Z-INDEX: 103; LEFT:
352px; POSITION: absolute; TOP: 104px" runat="server"
Width="88px" Height="24px">HH::mm</asp:Label>
</form>
</body>
</HTML>