[英]ASP.NET mvc hiding webgrid columns
我的cshtml文件在模型中接收一些布尔值(+数据以构建WebGrid)。 根据布尔值,必须显示一些webgrid列,而有些则隐藏,例如,我在webgrid中具有: Name
, Surname
, Job
列,但是我的SurnameBool = 0
意味着仅必须显示Name
和Job
列。 我试图使用其他答案中的代码,但是很不幸,我是JavaScript的新手,所以请您为我提供建议,如何基于@if(ColumnNameBool)
结果在@if(ColumnNameBool)
列中添加CSS display : none
属性。
WebGrid grid = new WebGrid(item2.ListOfWorkData, canSort: false, rowsPerPage: 15);
<div id="divWebGrid" class="row">
@if (item2.ListOfWorkData.Any())
{
@grid.GetHtml(
tableStyle: "table",
headerStyle: "table_HeaderStyle",
footerStyle: "table_PagerStyle",
rowStyle: "table_RowStyle",
alternatingRowStyle: "table_AlternatingRowStyle",
selectedRowStyle: "table_SelectedRowStyle",
columns: grid.Columns(
grid.Column("ProjectName", @Resources.Localization.project, format: @<text>
@if (Model.ColumnsNeeded.ProjectNameBool)
{
<span class="display-mode"><label id="ProjectNameLabel">@item.ProjectName</label></span>
}
</text>,style : "hidden-column"),
grid.Column("Activity", @Resources.Localization.activity, format: @<text>
@if (Model.ColumnsNeeded.ActivityBool)
{
<span class="display-mode"><label id="ActivityLabel">@item.Activity</label></span>
}
</text>, style: "p60"),
grid.Column("ProjectEndDate", @Resources.Localization.start_date, format: @<text>
@if (Model.ColumnsNeeded.ProjectStartDateBool)
{
<span class="display-mode"><label id="ProjectStartDate">@item.ProjectStartDate</label></span>
}
</text>, style: "p60"),
grid.Column("ProjectEndDate", @Resources.Localization.end_date, format: @<text>
@if (Model.ColumnsNeeded.ProjectEndDateBool)
{
<span class="display-mode"><label id="ProjectEndDate">@item.ProjectEndDate</label></span>
}
</text>, style: "p60")
)
)
}
您应该使用空源创建网格:
WebGrid grid = new WebGrid<Your item type>(null, canSort: false, rowsPerPage: 15);
将网格与源绑定:
grid.Bind(item2.ListOfWorkData, rowCount: <total row count>, autoSortAndPage: false);
根据ColumnNameBool值创建一组列:
var gridColumns = new List<WebGridColumn>();
@if(ColumnNameBool)
{
gridColumns.Add(grid.Column("ProjectName",
@Resources.Localization.project, format: @<text>
@if (Model.ColumnsNeeded.ProjectNameBool)
{
<span class="display-mode">
<label id="ProjectNameLabel">
@item.ProjectName</label>
</span>
}
</text>,style : "hidden-column"));
)
//... add other required columns here
}
else
{
//create here another list of columns that required
gridColumns.Add(...);
}
最后将列列表分配给网格:
@grid.GetHtml(<styles>, columns: gridColumns.ToArray());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.