2

下面提到的代码用于验证未来的日期,但它不起作用。任何帮助都会受到重视。文本框已将只读属性设置为 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();
}
4

3 回答 3

0

此解决方案不针对每个请求进行验证,但它使所有日期都无法选择

protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
    endDate = DateTime.Today;
    e.Day.IsSelectable = e.Day.Date <= endDate;
}

请注意,DayRenderEventArgs在命名空间中System.Web.UI.WebControls

于 2013-09-26T08:58:22.210 回答
0

OnClientDateSelectionChanged不是 asp 日历控件的有效方法。它是ajax日历控制中使用的一种方法。检查此链接

http://forums.asp.net/t/1922747.aspx

于 2013-09-26T09:37:19.743 回答
0

首先下载免费的 Ajax Tool Kit,然后在Toolbox Add a New Tab然后选择项目并浏览 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>

这可能会解决您的问题。

于 2014-01-11T05:20:09.633 回答