javascript - 如何根据所选月份的天数隐藏表格中的列?
问题描述
在我看来,根据选定的月份和一个表,有一个用于过滤器的日期选择器。该表有 32 列,其中 1-32 列是日期。我想问的是,当我选择二月时如何隐藏第 29、30、31 列(因为二月只有到 28 的日期)?,如果我选择四月,第 31 列将消失。下面是我的代码,谢谢。
private AttendecencesViewModel LoadDataAttendence(AttendecencesViewModel model)
{
queryJoin = db.AttendenceVs.ToList();
if (model.SearchPayrollMonth != null)
{
queryJoin = queryJoin.ToList().Where(x => x.PayrollMonth == model.SearchPayrollMonth);
}
foreach (AttendenceV attendenceV in queryJoin)
{
AttendenceViewModel detail = new AttendenceViewModel();
detail.EmployeeName = attendenceV.EmployeeName;
detail.PresenceDay01 = attendenceV.PresenceDay01;
detail.PresenceDay02 = attendenceV.PresenceDay02;
detail.PresenceDay03 = attendenceV.PresenceDay03;
attedenceViewModel.AttendenceDetails.Add(detail);
}
return attedenceViewModel;
}
public ActionResult Search(AttendecencesViewModel model)
{
attedenceViewModel = LoadDataAttendence(model);
return View("Index", attedenceViewModel);
}
看法
@Html.TextBoxFor(model => model.SearchMonth, new { @class = "form-control" })
<table class="table">
<tr>
<th>Name</th>
<th>1</th>
<th>2</th>
<th>3</th> //I only made it until the 3rd,
.
.
<th>31</th>
</tr>
@foreach (MyExercise.Data.ViewModel.AttendenceViewModel item in Model.AttendenceDetails)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.EmployeeName)</td>
<td>@Html.DisplayFor(modelItem => item.PresenceDay01)</td>
<td>@Html.DisplayFor(modelItem => item.PresenceDay02)</td>
<td>@Html.DisplayFor(modelItem => item.PresenceDay03)</td>
.
.
<td>@Html.DisplayFor(modelItem => item.PresenceDay31)</td>
</tr>
}
</table>
解决方案
可DateTime.DaysInMonth(<year>, <month>)
用于获取指定年/月的天数。使用此值,您可以隐藏/显示额外的列:
@foreach (MyExercise.Data.ViewModel.AttendenceViewModel item in Model.AttendenceDetails)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.EmployeeName)</td>
<td>@Html.DisplayFor(modelItem => item.PresenceDay01)</td>
<td>@Html.DisplayFor(modelItem => item.PresenceDay02)</td>
@* ... *@
<td>@Html.DisplayFor(modelItem => item.PresenceDay28)</td>
@if (daysInMonth >= 29)
{
<td>@Html.DisplayFor(modelItem => item.PresenceDay29)</td>
}
@if (daysInMonth >= 29)
{
<td>@Html.DisplayFor(modelItem => item.PresenceDay28)</td>
}
@* until 31...use the same idea in thead *@
</tr>
}
推荐阅读
- amazon-web-services - 主账户内的 Amazon S3 存储桶未在成员账户中列出
- c# - 不同控制器的不同WebAPiConfig
- php - 收到警告: implode(): 在收到 var 值后
- typescript - Ionic 3 - 在警报控制器中设置 id 值
- sorting - 在vuejs中对两个方向进行排序
- ios - 如何为 iOS 平台的 g-streamer 中的特定元素启用调试?
- hash - 我的 redis “ERR 未知命令 'HSTRLEN'”怎么了?
- javascript - 如何从循环数据数组中使用ajax发送参数
- mysql - 触发器不适用于 MySql
- unit-testing - 单元测试 + 工作单元 + 存储库