【问题标题】:Data annotation for not autodisplay columns in asp.net web forms gridview?asp.net web forms gridview中不自动显示列的数据注释?
【发布时间】:2018-01-15 19:01:12
【问题描述】:

我目前正在使用 asp.net web forms 4.5。

我正在使用 gridview,而 gridview 有一个很好的功能,叫做自动生成 列,我正在尝试使用它,但有些列我不想显示。

我知道我可以将自动生成列设置为 false 并为自己调用列,但我在想是否有模型上的数据注释等功能,(顺便说一下,我使用的是数据库优先)和防止gridview 显示。

我找到的最接近的帖子是data annotations hide property/field,但我认为这不适用于我的情况。

提前谢谢你!

【问题讨论】:

    标签: c# asp.net gridview data-annotations


    【解决方案1】:

    在 WebForms 中,没有像 MVC 中那样简单的标记来隐藏带有数据注释的列。如果您想使用自动生成列,您可以使用列的索引隐藏数据绑定事件中的列:

    protected void gridView_DataBound(object sender, GridViewRowEventArgs e) 
    {
        e.Row.Cells[index].Visible = false;
    }
    

    我建议不要使用自动生成的列,而是明确指定网格视图中的每一列。这样,如果您的数据源将来发生变化,您的 GUI 中就不会出现任何意外行为。

    【讨论】:

    • 你会用 WebForms GridView 把它放在哪里?因为我不知道该放在哪里。
    • 我无法使用它,因为 HiddenInput 使用 System.Web.Mvc 但我使用的是 Web 表单...它甚至无法编译...
    • @JinmoChong 你说得对,我完全错过了。我会更新我的答案。
    • @zm 再次感谢您。你不知道这对我有多大帮助。不仅方便,还有其他的东西!
    【解决方案2】:

    如果您制作了一个带有数据注释的模型,并且您给它起了一个不会显示在您的网格视图中的名称,请确保您在 Gridview 上设置 ItemType 并将其指向您的模型。它会工作得很好。

    【讨论】:

      猜你喜欢
      • 2020-12-10
      • 2012-07-24
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2017-12-06
      相关资源
      最近更新 更多