代码之家  ›  专栏  ›  技术社区  ›  Shawn

Gridview组合自动生成的字段和模板字段

  •  1
  • Shawn  · 技术社区  · 15 年前

    我的gridview有几个sqldatasources。所有列都是自动生成的。但是,它们都有一些一致的字段,我想让这些字段成为模板字段,这样我就可以修改它们的编辑模板,比如添加一个下拉菜单。这可能吗?如果是,怎么做-D谢谢!

    1 回复  |  直到 15 年前
        1
  •  2
  •   Carter Medlin    15 年前

    要用模板列替换特定的自动生成列,只需定义模板列并在代码中隐藏自动生成列。默认情况下,自动生成的列将出现在模板列之后,因此如果希望适当地放置这些列,也可以在代码中交换输出。

    在这个例子中,我改变了gridview的输出,它有两个模板列和两个自动生成的列,总共4个。我想用一个模板列(索引1)替换最后一个自动生成的列(索引3),但是我希望其中一个自动生成的列(索引2)更靠左,所以我用一个模板列(索引1)来切换它。

    Private Sub gv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv.RowDataBound
        'hide Column 3'
        e.Row.Cells(3).Visible = False
    
        'Swap the results for Column 1 and Column 2'
        Dim swap = e.Row.Cells(1).Text
        e.Row.Cells(1).Text = e.Row.Cells(2).Text
        e.Row.Cells(2).Text = swap
    End Sub
    

    这相当简单,不需要任何额外的类。