如果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
Run Code Online (Sandbox Code Playgroud)
您必须创建自己的标头,但这非常可行。
| 归档时间: |
|
| 查看次数: |
9480 次 |
| 最近记录: |