加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用AutoGenerateColumns = true操作GridView中的列

发布时间:2020-12-16 04:10:11 所属栏目:asp.Net 来源:网络整理
导读:如果AutoGenerateColumns = true,似乎没有办法操纵Gridview的列.这是我的情景: 我有一个通用的GridView,它根据用户选择的内容显示各种不同LINQ查询的结果.我喜欢AutoGenerateColumns的工作方式,我不需要指定所有的BoundField,TemplateField列等… 最重要的
如果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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读