asp.net – 使用AutoGenerateColumns = true操作GridView中的列的任何方法?

如果AutoGenerateColumns = true,似乎没有办法操纵Gridview的列.这是我的情景:

我有一个通用的GridView,它根据用户选择的内容显示各种不同LINQ查询的结果.我喜欢AutoGenerateColumns的工作方式,我不需要指定所有的BoundField,TemplateField列等…

最重要的是,我还根据需要以编程方式添加其他列.以编程方式添加的列将呈现在自动生成列的左侧.如果我想将它们移到右边怎么办?

GridView.Columns.Count只计算那些编程的,而不是自动生成的,所以我不能重新排列我想要的列.我可以挂钩RowDataBound事件并在必要时“隐藏”某些内容,但我无法重新排列.

我是否只需要放弃AutoGeneratedColumns = true,并为每个查询使用BoundFields进行布局?有什么我可以做的吗?

解决方法

你可以操作像这样绑定的数据:
Private Sub MyGrid_RowDataBound(ByVal sender As Object,ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Me.RowDataBound
  If Me.AutoGenerateColumns = True Then
    If e.Row.RowType = DataControlRowType.DaTarow Then
          e.row.cells.add(some code here to add your special column)
    End If
    End If
End Sub

你必须创建自己的标题,但它是非常可行的.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...