Я использую расширитель календаря AJAX с текстовым полем, и я хочу отключить прошлые даты, чтобы пользователь не смог выбрать те, которые меньше сегодняшней даты. Мой код выглядит следующим образом
System.FormatException: String не был признан действительным DateTime
В .aspx странице
<asp:TextBox ID="txtFromDate" runat="server" ontextchanged="txtFromDate_TextChanged" AutoPostBack="true"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtFromDate">
</asp:CalendarExtender>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
и на .cs странице
protected void txtFromDate_TextChanged(object sender, EventArgs e)
{
DateTime dt1 = DateTime.Parse(txtFromDate.Text);
if (dt1 < DateTime.Now)
{
//Response.Write("you can not choose date earlier than today's date");
txtFromDate.Text = null;
}
}
Но я получаю следующее сообщение об ошибке:
System.FormatException: String не был признан действительным DateTime.
и есть ли способ, которым я могу сделать эти даты незаметными, чтобы пользователь не мог выбирать из них, используя атрибуты startDate и Enddate, или каким-либо другим способом, я также пробовал те, но снова я получил ошибку, что они не поддерживаются. Любая помощь будет оценена.
Для начала вы хотите хотите использовать TryParse, который не бросит ошибку, а просто вернуться ложным, если строка не может быть преобразована: http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx – ChargerIIC