我是 C# 的初学者,在使用 DateTime 时遇到了一些问题。我不想为日期使用 3 个单独的下拉菜单或文本框。但我仍然希望能够将用户输入限制为日期格式(dd/mm/yyyy)。我怎样才能做到这一点?
注意:我只是一个学习者,所以请解释你写的任何代码
看看ASP.NET AJAX Toolkit它有一个示例 MaskedEdit 框,它应该可以完成您正在寻找的内容。
或者,您可以使用带有正则表达式的验证器来检查格式,使用第二个验证器来检查日期是否真实(即闰年问题)。
但我认为更简洁的 UI 方法是使用 MaskedEdit 系统和验证器。
嗨,您可以使用 javascript 来限制您的日期字段。
请参阅下面我的代码
您在 aspx 页面中的文本框,
<asp:Textbox ID="txtDate" runat="server" />
并使用如下的javascript
<script type="text/javascript" language="javascript">
function ValidateDateOf() {
DayObj = new Date();
var txtdate = document.getElementById('<%=txtDate.ClientID %>').value;
var arr = txtdate.split("/");
var leapday = arr[0];
var leapmonth = arr[1];
var leapyear = arr[2];
var CurDate = DayObj.getDate();
var CurYear = DayObj.getFullYear();
var CurMonth = DayObj.getMonth();
if (leapday == '') {
alert('day Field is required');
return false;
}
if (leapmonth == '') {
alert('month Field is required');
return false;
}
if (leapyear == '') {
alert('year Field is required');
return false;
}
if (parseInt(leapday) > 29) {
alert('invalid date');
return false;
}
if (!isleap(leapyear)) {
if (parseInt(leapday) > 28) {
alert('invalid date');
return false;
}
return true;
}
return true;
}
function isleap(leapyear) {
var yr = leapyear;
if ((parseInt(yr) % 4) == 0) {
if (parseInt(yr) % 100 == 0) {
if (parseInt(yr) % 400 != 0) {
return false;
}
if (parseInt(yr) % 400 == 0) {
return true;
}
}
if (parseInt(yr) % 100 != 0) {
return true;
}
}
if ((parseInt(yr) % 4) != 0) {
return false;
}
}
您可以使用 AJAX 控件工具包的 CalendarExtender。