Ciao a tutti ho un datagrid dove modifico i campi della lista con un edit template.
Però mi da un errore su un campo di dipo dropdown. Ma non capisco il perchè.
Ecco il codice che uso:

codice:
<asp:DataGrid id="lista" runat="server" Width="500px" OnCancelCommand="CancelCommand" OnUpdateCommand="UpdateCommand"
										OnEditCommand="EditCommand" ItemStyle-CssClass="testo" HeaderStyle-CssClass="titoletti"
										BorderStyle="None" AutoGenerateColumns="False" DataKeyField="id_categoria_rubrica">
										<Columns>
											<asp:TemplateColumn>
												<HeaderTemplate>
													Riferimento
												</HeaderTemplate>
												<ItemTemplate>
													<%#Container.DataItem("riferimento")%>
												</ItemTemplate>
												<EditItemTemplate>
													<asp:DropDownList id="Area" runat="server" CssClass="input">
														<asp:ListItem>Magazine</asp:ListItem>
                                                        <asp:ListItem>Community</asp:ListItem>
                                                        <asp:ListItem>ByNight</asp:ListItem>
													</asp:DropDownList>
												</EditItemTemplate>
											</asp:TemplateColumn>
											<asp:TemplateColumn>
												<HeaderTemplate>
													Categoria
												</HeaderTemplate>
												<ItemTemplate>
													<%#Container.DataItem("categoria_rubrica")%>
												</ItemTemplate>
												<EditItemTemplate>
													<asp:TextBox ID="txtUsername" Width="60" Runat="server" CssClass="input" Text='<%#Container.DataItem("username")%>'/>
												</EditItemTemplate>
											</asp:TemplateColumn>
											
											<asp:TemplateColumn>
												<HeaderTemplate>
													Categoria
												</HeaderTemplate>
												<ItemTemplate>
													<%#Container.DataItem("categoria_rubrica")%>
												</ItemTemplate>
												<EditItemTemplate>
													<asp:TextBox ID="txtPasswd" Width="60" Runat="server" CssClass="input" Text='<%#Container.DataItem("passwd")%>'/>
												</EditItemTemplate>
											</asp:TemplateColumn>
											<asp:TemplateColumn>
												<HeaderTemplate>
													Categoria
												</HeaderTemplate>
												<ItemTemplate>
													<%#Container.DataItem("riferimento")%>
												</ItemTemplate>
												<EditItemTemplate>
													<asp:TextBox ID="txtRif" Width="80" Runat="server" CssClass="input" Text='<%#Container.DataItem("riferimento")%>'/>
												</EditItemTemplate>
											</asp:TemplateColumn>
											<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Modifica" CancelText="Elimina" EditText="Edit!" ></asp:EditCommandColumn>
										</Columns>
									</asp:DataGrid>
Ecco quello vb

codice:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        connetti()
        If Not Page.IsPostBack Then
            'Try

            strsql = "Select Rubricareporter.id_rubricante, Rubricareporter.riferimento, Categorierubriche.id_categoria_rubrica, Categorierubriche.categoria_rubrica From Categorierubriche, Rubricareporter where Rubricareporter.id_rubricante=Categorierubriche.id_rubricante"
            cmdSql = New OdbcCommand(strsql, conn)
            rs = cmdSql.ExecuteReader()
            lista.DataSource = rs
            lista.DataBind()
            rs.Close()

            'Catch ex As Exception
            '   messaggio.Text = "Errore: " & ex.Message()
            'Finally
            conn.Close()
            'End Try
        End If
    End Sub

    Protected Sub EditCommand(ByVal a As Object, ByVal e As DataGridCommandEventArgs)
        'Dim i As Integer
        Dim idCat As String

        idCat = lista.DataKeys(e.Item.ItemIndex)
        lista.EditItemIndex = e.Item.ItemIndex

        BindDataGrid()
        'Dim drVis As DropDownList = DirectCast(dgi.FindControl("drVisibile"), DropDownList)

        Dim dgi As DataGridItem = lista.Items(lista.EditItemIndex)
'L ERRORE è QUI!!!!!
        Dim Area As DropDownList = DirectCast(dgi.FindControl("Area"), DropDownList)
        connetti()


        Try

            'strsql = "Select * From Admin"
            ' cmdSql = New OdbcCommand(strsql, conn)
            'rs = cmdSql.ExecuteReader()
            'Area.DataSource = rs
            'Area.DataTextField = "area"
            'Area.DataValueField = "area"
            'Area.DataBind()
            'rs.Close()


        Catch ex As Exception
            messaggio.Text = "Errore: " & ex.Message()
        Finally
            conn.Close()
        End Try

    End Sub
grazie a tutti per l'aiuto