使用texbox Asp.Net C#禁用过去的日期

时间:2016-06-07 08:36:11

标签: c# sql asp.net sql-server

我正在开发一个从SQL Server中提取数据的Asp.Net C#Web应用程序。我正在使用一个文本框,其属性设置为用于选择日期的日期,我需要一个方法或代码来禁止用户选择从现在开始的过去一天?

或者当用户选择日期并单击保存时,数据库必须给出错误,以便用户选择将来的日期而不接受已保存的日期。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:2)

您可以从jquery进行设置。

jQuery(function ($) { $("#datepicker").datepicker({ showOtherMonths: true, selectOtherMonths: false, }); });

此代码将帮助您不选择以前的日期。

答案 1 :(得分:2)

感谢@jeffrey使用您提供的示例代码我能够在下面找到一个可行的解决方案。

protected void Btn_Save_Click(object sender, EventArgs e)
    {
        DateTime inputDateTime = Convert.ToDateTime(TextBox1.Text);
        if (inputDateTime < DateTime.Now)
        {
            Error.Text=("You Cannot Save A Past Date");
        }
        else
        {
            period cv = new period();
            cv.PeriodStart = Convert.ToDateTime(TextBox1.Text);
            cv.CreateAgent = Convert.ToString(SessionName.Text);
            cv.CreateDate = DateTime.Now;
            ZS_CS_EVO_IntegrationEntities db = new ZS_CS_EVO_IntegrationEntities();
            db.periods.Add(cv);
            db.SaveChanges();
            Error.Text = ("Date Saved Successfully");
        }
    }

答案 2 :(得分:1)

好吧,拥有一个文本框只会保存日期值,您的验证逻辑(不允许保存过去的日期)应该在可能的表单提交事件或文本框鼠标点击事件中实现。它可能就像

DateTime inputDateTime = convert.ToDateTIme(TextBox1.Value); 
if (inputDateTime<DateTime.Now) 
{ 
  Throw Exceptoin("you have entered the wrong value");
}
 else 
{ 
  save...
}

答案 3 :(得分:0)

我建议您使用DateTime比较文本框的数据,然后只允许等于或高于它的值。这样就可以在限制它们时阻止不受欢迎的值。