2010-08-17 44 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