我目前正在使用asp.net web forms 4.5。
我正在使用gridview和gridview有一个很好的功能,称为自动生成列,我正在尝试使用它,但有一些我不想显示的列。
我知道我可以将autogenerate列设置为false并为自己调用列,但我在想是否有一个功能,如模型上的数据注释,(我使用数据库优先,顺便说一下)并阻止gridview从显示。
我找到的最接近的帖子是data annotations hide property/field,但我不认为这适用于我的情况。
先感谢您!
在WebForms中,没有像MVC那样的简单标记来隐藏带有数据注释的列。如果要使用autogenerate列,可以使用列的索引隐藏数据绑定事件中的列:
protected void gridView_DataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[index].Visible = false;
}
我建议不要使用自动生成的列,而是明确指定gridview中的每一列。这样,如果您的数据源将来发生更改,则GUI中不会出现任何意外行为。
如果您已经创建了带有数据注释的模型,并且您已经为其指定了一个不会显示在gridview中的名称,请确保在Gridview上设置ItemType并将其指向您的模型。它会工作得很好。