Ciao ragazzi,
Ho una drop down in un datalist: riesco apopolare la dropdown, ma non riesco a mostrare come selezionato il valore che attualmeente è settato.
Vi prego ditemi cosa sbaglio che sto impazzendo.
L'errore è questo:
Object reference not set to an instance of an object.
at archivio_det.DtlArchivioBound(Object obj, DataListItemEventArgs e) in D:\website\software\lafer\archivio_det.aspx.vb:lin e 43

Il codebehind adesso è così(è unpò lungo, ma è molto semplice e spero potrete dargli cmq uno sguardo):
codice:
Imports System.Data
Imports System.Data.OleDb

Partial Class archivio_det
    Inherits System.Web.UI.Page

    Dim MYSQL, MYSQL2 As String
    Dim conn As Data.OleDb.OleDbConnection
    Dim MyDA, MyDA2 As Data.OleDb.OleDbDataAdapter
    Dim MyDS As DataSet
    Public id_archivio As String
    Protected MyDs2 As New DataSet


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Carica_Archivio()
        Carica_Sup()
        Binda()

    End Sub

    Sub DtlArchivioEdit(ByVal obj As Object, ByVal e As DataListCommandEventArgs)
        DtlArchivio.EditItemIndex = e.Item.ItemIndex
        DtlArchivio.DataBind()

    End Sub

    Sub DtlArchivioAnnulla(ByVal obj As Object, ByVal e As DataListCommandEventArgs)
        DtlArchivio.EditItemIndex = -1
        DtlArchivio.DataBind()

    End Sub

    Sub DtlArchivioBound(ByVal obj As Object, ByVal e As DataListItemEventArgs)
        Try
            If e.Item.ItemType = ListItemType.EditItem Then

                Dim DDLSupTemp As DropDownList
                Dim ddlsupsel As String
                ddlsupsel = CType(e.Item.FindControl("LblSup"), Label).Text
                DDLSupTemp = CType(e.Item.FindControl("DDLSup"), DropDownList)
                DDLSupTemp.SelectedIndex = DDLSupTemp.Items.IndexOf(DDLSupTemp.Items.FindByText(ddlsupsel))

            End If

        Catch ex As Exception
            lblerrore.Text = ex.Message & "
 " & ex.StackTrace

        End Try

    End Sub

    'Sub per caricamento Super Categoria
    Sub Carica_Sup()
        Try

            conn = CType(Session("Connessione"), Data.OleDb.OleDbConnection)
            conn.Open()

            MYSQL2 = "SELECT *FROM tab_sup_cat ORDER BY nome_sup_cat ASC"
            MyDA2 = New Data.OleDb.OleDbDataAdapter(MYSQL2, conn)
            MyDA2.Fill(MyDS2, "tab_sup_cat")

        Catch ex As Exception
            lblerrore.Text = "Errore rilevato: " & ex.Message
        Finally

            conn.Close()

        End Try
    End Sub

    Sub Carica_Archivio()
        Try
            id_archivio = Request.QueryString("pid")

            conn = CType(Session("connessione"), Data.OleDb.OleDbConnection)
            conn.Open()

            MYSQL = "SELECT tab_sup_cat.*, tab_cat.*, tab_sotto_cat.*, tab_archivio.*" & _
                    " FROM ((tab_sup_cat INNER JOIN tab_archivio" & _
                    " ON tab_sup_cat.ID_sup_cat = tab_archivio.id_sup_cat)" & _
                    " LEFT JOIN tab_cat" & _
                    " ON tab_cat.ID_cat = tab_archivio.id_cat)" & _
                    " LEFT JOIN tab_sotto_cat" & _
                    " ON tab_sotto_cat.ID_sotto_cat = tab_archivio.id_sotto_cat" & _
                    "  WHERE ID_archivio = " + id_archivio + "" & _
                    " ORDER BY tab_sup_cat.nome_sup_cat, tab_archivio.ragione ASC"

            MyDA = New Data.OleDb.OleDbDataAdapter(MYSQL, conn)
            MyDS = New DataSet()
            MyDA.Fill(MyDS, "tab_archivio")


        Catch ex As Exception
            lblerrore.Text = ex.Message & "
" & ex.StackTrace

        Finally
            conn.Close()
        End Try

    End Sub

    Sub Binda()
        DtlArchivio.DataSource = MyDS
        DtlArchivio.DataMember = "tab_archivio"
        DtlArchivio.DataBind()

    End Sub

End Class
quindi nella pagina .aspx ho il datalist così:

codice:
 <asp:Datalist
 SelectedItemStyle-BackColor="#cccc99"
 RepeatLayout=Table
 RepeatDirection=Vertical
 DataKeyField="ID_archivio"
 runat=server
 ID="DtlArchivio"
 OnEditCommand="DtlArchivioEdit"
 OnCancelCommand="DtlArchivioAnnulla"
 OnItemDataBound="DtlArchivioBound"
 >
e l'editItemTemplate così:
codice:
<asp:Label ID="LblSup" Visible=true
                           runat=server Text='<%#Databinder.eval(Container.Dataitem, "nome_sup_cat") %>'></asp:Label>

                            <asp:DropDownList ID="DDLSupCat" runat=server
                            DataSource="<%# myds2 %>"
                            DataTextField="nome_sup_cat"
                            DataValueField="ID_sup_cat"
                            >
                            </asp:DropDownList>
Ho provato anche a fare un semplice:
codice:
DDLSupTemp.Items.Add(New ListItem("dddd", "0"))
ma mi restituisce sempre lo stesso errore.

Vi prego ditemi come devo fare!!