我是Knockout MVC的新手,如果选择的日期是星期六或星期天,我试图显示<img />
。我希望它在我改变值(No form submit)时立即显示。
我的尝试是使用"using(ko)"。如果(……))":
public class TestModel
{
public DateTime? Date { get; set; }
public bool Weekend
{
get
{
if (Date.HasValue)
{
return Date.Value.DayOfWeek == DayOfWeek.Saturday || Date.Value.DayOfWeek == DayOfWeek.Sunday;
}
return false;
}
}
}
CSHTML
@using PerpetuumSoft.Knockout
@model MyApp.TestModel
@{
var ko = Html.CreateKnockoutContext();
}
…
@ko.Html.TextBox(x => x.Date, new { class="datefield" })
using(ko.If(x => x.Date.Value.DayOfWeek == DayOfWeek.Saturday || x.Date.Value.DayOfWeek == DayOfWeek.Sunday))
{
<img src="~/Images/warning-icon.png" width="22" height="22" title="Warning, it's the weekend." />
}
…
<script type="text/javascript" >
$(document).ready(function () {
$(".datefield").datepicker({ dateFormat: 'd M yy', changeYear: true });
});
</script>
@ko.Apply(Model)
我尝试过这种方法,但它说它不能解析绑定,因为"值()"。我设法使它与一个带有bool和一个带有字符串条件的文本框的复选框一起工作…但是不能用日期时间。
希望我清楚我的问题。
提前感谢您的帮助。
问:
嗯,我放弃了尝试使用Knockout MVC与DateTime (Works fine with String and Bool)。
我使用jQuery来显示我想要的块。只需在我的img上设置一个id (warningWeekend)并修改日期拾取器脚本
<script type="text/javascript" >
$('#warningWeekend').hide('fast');
$(".datefield").datepicker({
dateFormat: 'd M yy',
changeYear: true,
onSelect: function (dateText, inst) {
var date = $(this).datepicker("getDate");
if (date.getDay() == 0 || date.getDay() == 6) {
$('#warningWeekend').show('fast');
}
else {
$('#warningWeekend').hide('fast');
}
}
});
</script>