C# 如何禁用所选日期(asp.net mvc4)
我正在MVC4中尝试预约页面。这是工作得很好,但我想禁用的日期选择。这是我的控制员预约的时间:C# 如何禁用所选日期(asp.net mvc4),c#,jquery,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Jquery,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我正在MVC4中尝试预约页面。这是工作得很好,但我想禁用的日期选择。这是我的控制员预约的时间: public ActionResult Make() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public ActionResult Make(Models.AppModel User) { if (S
public ActionResult Make()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Make(Models.AppModel User)
{
if (Session["UserEmail"] != null)
{
using (var db = new MaindbModelDataContext())
{
var patient = db.Patients.FirstOrDefault(u => u.Email == (String)Session["UserEmail"]);
var app = new Appointment();
app.Date = (DateTime)User.Date;
app.Description = User.Description;
app.Status = "isPending";
app.PatientNo = patient.PatientNo;
app.AppNo = Guid.NewGuid().GetHashCode();
db.Appointments.InsertOnSubmit(app);
db.SubmitChanges();
}
}
else
{
return RedirectToAction("Index", "User");
}
return RedirectToAction("Index", "Patient");
}
//
}
}
下面是我对datepicker的看法
@model DentAppSys.Models.AppModel
@{
ViewBag.Title = "Appointment";
}
<link type="text/css" rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken();
@Html.ValidationSummary(true, "");
<div>
<fieldset>
<legend>Get an Appointment</legend>
<div>@Html.LabelFor(u => u.Date)</div>
<div>
@Html.TextBoxFor(u => u.Date, htmlAttributes: new { id = "DatePicker" })
@Html.ValidationMessageFor(u => u.Date)
</div>
<div>@Html.LabelFor(u => u.Description)</div>
<div>
@Html.TextBoxFor(u => u.Description)
</div>
<input type="submit" value="Submit" class="footer_btn" />
</fieldset>
</div>
}
<script type="text/javascript">
$(function () {
$("#DatePicker").datepicker();
});
</script>
@model DentAppSys.Models.AppModel
@{
ViewBag.Title=“约会”;
}
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken();
@Html.ValidationSummary(true,“”);
预约
@LabelFor(u=>u.Date)
@TextBoxFor(u=>u.Date,htmlAttributes:new{id=“DatePicker”})
@Html.ValidationMessageFor(u=>u.Date)
@LabelFor(u=>u.Description)
@Html.TextBoxFor(u=>u.Description)
}
$(函数(){
$(“#日期选择器”).DatePicker();
});
或
请在JavaScript代码上尝试。。 希望能有帮助
<script type="text/javascript">
$(function () {
$("#DatePicker").datepicker();
$("#DatePicker").attr('disabled','disabled')
});
</script>
arrayDisabledDates是日期数组
var arrayDisabledDates=[…,…,…]在我看来,“日期”的文本框可能会被禁用,具体取决于条件。 你可以试试这个
@using (Html.BeginForm())
{
@Html.AntiForgeryToken();
@Html.ValidationSummary(true, "");
<div>
<fieldset>
<legend>Get an Appointment</legend>
<div>@Html.LabelFor(u => u.Date)</div>
<div>
@{
string idAttr="";
if(condition_for_disable==true)
{
idAttr="DatePicker";
}
@Html.TextBoxFor(u => u.Date, htmlAttributes: new { id = idAttr })
} @Html.ValidationMessageFor(u => u.Date)
</div>
<div>@Html.LabelFor(u => u.Description)</div>
<div>
@Html.TextBoxFor(u => u.Description)
</div>
<input type="submit" value="Submit" class="footer_btn" />
</fieldset>
</div>
}
<script type="text/javascript">
$(function () {
$("#DatePicker").datepicker();
});
</script>
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken();
@Html.ValidationSummary(true,“”);
预约
@LabelFor(u=>u.Date)
@{
字符串idAttr=“”;
如果(条件为禁用==真)
{
idAttr=“日期选择器”;
}
@TextBoxFor(u=>u.Date,htmlAttributes:new{id=idAttr})
}@Html.ValidationMessageFor(u=>u.Date)
@LabelFor(u=>u.Description)
@Html.TextBoxFor(u=>u.Description)
}
$(函数(){
$(“#日期选择器”).DatePicker();
});
不确定这是否是您想要的@Html.TextBoxFor(u=>u.Date,htmlAttributes:new{id=“DatePicker”,disabled=“true”})
@Kunukn:readonly=true
在这里可能更合适。可读性更好,值仍然随表单一起提交。@Flater readonly是一个保留关键字,因此它是@readonly=true:)@Kunukn:Spot on。我通常只在VS提醒我时才注意到这类事情:)@Html.TextBoxFor(u=>u.Date,htmlAttributes:new{id=“DatePicker”,@readonly=“true”})。。。我使用了这个。我选择了5月22日,并在我离开时创建了约会。约会页面5月22日未被禁用???对于您的情况,您应该使用disabled=“disabled”
。As readonly将使文本成为只读,但datepicker事件仍然可以工作,并且可以更改日期。使用disabled=“disabled”
让我知道它是否有效。好吧,我想我解释错了。这段代码禁用了我所有的日期选择器。我想验证一下,不要再次选择所选日期。每天都有约会。因此,首先,所有日期都应该可用,但当有人在6月15日单击时(仅举一个例子)并获得约会。没有人可以再次选择6月15日。我认为我应该使用与我的数据库连接的代码,因为我在数据库中保留约会日期。但是,我可以在哪里将我的连接添加到数据库以检查该日期是否已被选择?但我可以在哪里将连接添加到数据库以检查该日期是否已被选择?在这种情况下if条件可能类似于if(Model.Date>DateTime.MinValue)或类似的东西
<script type="text/javascript">
$(function () {
$("#DatePicker").datepicker();
$("#DatePicker").attr('disabled','disabled')
});
</script>
$('#DatePicker').datepicker({
beforeShowDay: function (dt) {
var bDisable = arrayDisabledDates[dt];
if (bDisable)
return [false, '', ''];
else
return [true, '', ''];
}
});
@using (Html.BeginForm())
{
@Html.AntiForgeryToken();
@Html.ValidationSummary(true, "");
<div>
<fieldset>
<legend>Get an Appointment</legend>
<div>@Html.LabelFor(u => u.Date)</div>
<div>
@{
string idAttr="";
if(condition_for_disable==true)
{
idAttr="DatePicker";
}
@Html.TextBoxFor(u => u.Date, htmlAttributes: new { id = idAttr })
} @Html.ValidationMessageFor(u => u.Date)
</div>
<div>@Html.LabelFor(u => u.Description)</div>
<div>
@Html.TextBoxFor(u => u.Description)
</div>
<input type="submit" value="Submit" class="footer_btn" />
</fieldset>
</div>
}
<script type="text/javascript">
$(function () {
$("#DatePicker").datepicker();
});
</script>