【问题标题】:Is there an Attribute that hides a property from being bound to a gridview in asp.net?是否有隐藏属性以防止绑定到 asp.net 中的 gridview 的属性?
【发布时间】:2010-02-11 01:35:35
【问题描述】:

我有一个对象,我将其设置为 gridview 的数据源 - 这很好用,我在页面上得到了一个漂亮的表格,每个公共属性都有一个列。

但是 - 我总是想隐藏其中一列(但仍然需要它作为公共属性。

我现在正在使用一个笨拙的 hide-column-on-row-created 修复程序,但我正在寻找更好的解决方案,例如应用于属性的属性以将其从数据绑定中隐藏。

显然这存在于winforms中:

[Browsable(false)] // this stops Type from showing up in databound controls
public string Type { get; set; }

public string Description { get; set; }

任何人都可以为 ASP.NET 提出类似的解决方案吗?

更新:
我将 Rex M 的答案标记为正确,因为它回答了问题,但如果其他人对此感兴趣:
最终对我有用的是将与我想隐藏的列对应的属性标记为 internal 而不是 public。

【问题讨论】:

  • 你不能模板化你的gridview,只是没有那个特定的列吗?我有一个包含 100 多个字段的数据库,但 gridview 只有 4 列。我通过使用模板而不是让 gridview 绑定到所有列来做到这一点。
  • @rockinthesixstring 是的,但是对于大多数这些情况,您希望在 gridview 中显示的是整个表格,可能隐藏了一两列。我希望有一种更优雅的方式来做到这一点。

标签: asp.net gridview properties attributes


【解决方案1】:

查看GridView.CreateAutoGeneratedColumns(PagedDataSource dataSource) 的反射代码,当它为属性抓取数据源时,似乎没有对属性进行任何检查。所以,显然不是。

【讨论】:

  • 好的,不能反驳(谢谢,从没想过使用反射)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
相关资源
最近更新 更多