Ho fatto un esempio con una sorgente creata al volo:
codice:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="50%">
<Columns>
<asp:BoundField DataField="ID" />
<asp:BoundField DataField="Campo1" />
<asp:TemplateField>
<ItemTemplate>
<asp: DropDownList ID="dd" runat="Server"></asp: DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim dt As New DataTable
' Colonne
Dim ID As New DataColumn("ID")
dt.Columns.Add(ID)
Dim Campo1 As New DataColumn("Campo1")
dt.Columns.Add(Campo1)
Dim Colore As New DataColumn("Colore")
Colore.DataType = GetType(System.Drawing.Color)
dt.Columns.Add(Colore)
' Righe
Dim r1 As DataRow = dt.NewRow
r1.Item(0) = "1"
r1.Item(1) = "valore uno"
r1.Item(2) = System.Drawing.Color.Yellow
dt.Rows.Add(r1)
Dim r2 As DataRow = dt.NewRow
r2.Item(0) = "2"
r2.Item(1) = "valore 2"
r2.Item(2) = System.Drawing.Color.Blue
dt.Rows.Add(r2)
GridView1.DataSource = dt
GridView1.DataBind()
End If
End Sub
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim ddl As New DropDownList
ddl = CType(e.Row.Cells(2).FindControl("dd"), DropDownList)
ddl.BackColor = e.Row.DataItem("colore")
End If
End Sub