下面提到的代码用于验证未来的日期,但它不起作用。任何帮助都是适用的。 文本框的readonly属性设置为false,因此我可以更改文本框中的值并更改为将来的日期,对于我需要验证的条件
//在aspx中
<asp:TextBox ID="txtdob" runat="server" OnClientDateSelectionChanged="checkDate"></asp:TextBox>
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Height="26px" Width="23px" Text=".." />
<script type="text/javascript" >
function checkDate(sender, args)
{
if (sender._selectedDate > new Date())
{
alert("You cannot select future date!");
sender._selectedDate = new Date();
// set the date back to the current date
sender._txtdob.set_Value(sender._selectedDate.format(sender._format))
}
}
</script>
<asp:Calendar ID="Calendar1" runat="server" onselectionchanged="Calendar1_SelectionChanged" OnClientDateSelectionChanged="checkDate"
style="top: 320px; left: 246px; position: absolute; height: 188px; width: 259px">
</asp:Calendar>
//在c#
中protected void Button2_Click(object sender, EventArgs e)
{
Calendar1.Visible = true;
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
txtdob.Text = Calendar1.SelectedDate.ToShortDateString();
}
答案 0 :(得分:0)
此解决方案不是每个请求都有验证,但它会使所有日期都无法选择
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
endDate = DateTime.Today;
e.Day.IsSelectable = e.Day.Date <= endDate;
}
请注意,DayRenderEventArgs
位于命名空间System.Web.UI.WebControls
答案 1 :(得分:0)
OnClientDateSelectionChanged 不是asp日历控件的有效方法。它是ajax压光机控制中使用的方法。检查此链接
答案 2 :(得分:0)
首先下载免费的Ajax工具包,然后在工具箱中添加新选项卡,然后选择项目并浏览Ajax Control ToolKit dll文件。 该工具包将添加到工具箱中,然后从ajax工具包中选择日历扩展程序。 然后在aspx页面中,在ContentPlaceHolder
之前添加这行代码 <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
然后在Content Place Holder中添加JavaScript。
<script type="text/javascript">
function checkDate(sender, args)
{
if (sender._selectedDate > new Date())
{
alert("You cannot select future date!");
sender._selectedDate = new Date();
// set the date back to the current date
sender._textbox.set_Value(sender._selectedDate.format(sender._format))
}
}
</script>
然后对于文本框使用此代码。
<asp:TextBox ID="txtdob" runat="server" ></asp:TextBox>
<asp:CalendarExtender runat="server" ID="CalenderExtender1" Format="MM/dd/yyyy" OnClientDateSelectionChanged="checkDate"
TargetControlID="txtdob">
</asp:CalendarExtender>
这可能会解决您的问题。