2010-08-17 46 views
1

我有几个sqldatasources为我的gridview。所有的列都是自动生成的。然而,他们都有一些一致的领域,我想这些领域的模板字段,所以我可以修改他们的编辑模板,如添加下拉菜单。这可能吗?如果是这样,怎么样? :-D谢谢!Gridview结合自动生成的字段和模板字段

回答

2

要用模板列替换特定的自动生成的列,只需定义模板列并在代码中隐藏自动生成的列。自动生成的列将默认显示在模板列之后,因此如果您希望它们被正确放置,您也可以在代码中交换输出。

在这个例子中,我改变了gridview的输出,该gridview有两个模板列和两个自动生成的列,总共为4个。我想用模板列(index)替换最后一个自动生成的列(索引3) 1),但我希望我的一个自动生成的列(索引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 

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

+0

是否有方法通过名称设置可见性?不幸的是,虽然列是一致的,但并不总是处于相同的位置。 – Shawn 2010-08-20 17:11:32

+0

按名称获取指数: 昏暗X作为整数 昏暗Ÿ作为Data.DataRowView Y = e.Row.DataItem X = y.Row.Table.Columns.IndexOf( “状态”) 不幸的是设置的知名度,只对该行为false,所以所有的列都不匹配。我必须找出隐藏整个列而不是单元格的方法。 – Shawn 2010-08-23 17:23:09