Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Riferimento a un oggetto non impostato su un'istanza di oggetto

    Che significa non capisco...
    questo è il codice del clic del bottone:
    codice:
        Protected Sub btnCancellaRuolo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancellaRuolo.Click
            lblMessaggio.Text = lstRuoli.SelectedItem.ToString()
            Aggiorna()
        End Sub
    In pratica dovrebbe scrivere in una label il valore selezionato da un listbox.
    Ma mi dà quell'errore dell'oggetto di questo post, nel dettaglio dice anche questo:

    Riferimento a un oggetto non impostato su un'istanza di oggetto.
    Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

    Dettagli eccezione: System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.

    Errore nel codice sorgente:


    Riga 22:
    Riga 23: Protected Sub btnCancellaRuolo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancellaRuolo.Click
    Riga 24: lblMessaggio.Text = lstRuoli.SelectedItem.ToString()
    Riga 25: Aggiorna()
    Riga 26: End Sub


    File di origine: C:\Documents and Settings\fenrico\Documenti\Visual Studio 2005\WebSites\AccessProviderTest\Amministratore\Ru oli.aspx.vb Riga: 24

    Analisi dello stack:


    [NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.]
    Amministratore_Ruoli.btnCancellaRuolo_Click(Object sender, EventArgs e) in C:\Documents and Settings\fenrico\Documenti\Visual Studio 2005\WebSites\AccessProviderTest\Amministratore\Ru oli.aspx.vb:24
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +75
    System.Web.UI.WebControls.Button.RaisePostBackEven t(String eventArgument) +97
    System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +7
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +11
    System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +33
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4919


    Che devo fare? Dove sbaglio? :master:
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  2. #2
    lblMessaggio.Text = lstRuoli.SelectedItem.Text

    oppure

    lblMessaggio.Text = lstRuoli.SelectedItem.Value
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  3. #3
    No medesimo errore...
    Non è forse un problema di postback?
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    hai dichiarato Protected WithEvents nel CBehind la label e la dropdown ?

  5. #5
    Originariamente inviato da djciko
    hai dichiarato Protected WithEvents nel CBehind la label e la dropdown ?
    No spiega, scusa non capisco...
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    hai la pagina aspx ed il file aspx.vb giusto ?

    dovresti avere nel file .vb dichiarati come Protected WithEvents i controlli che vuoi usare nel codice...

  7. #7
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Ruoli.aspx.vb" Inherits="Amministratore_Ruoli" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Gestione dei ruoli</title>
        <link href="Stile/stile.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        Ruoli definiti:
        
    
        <asp:ListBox ID="lstRuoli" runat="server">
        </asp:ListBox>
        <asp:Button ID="btnCancellaRuolo" runat="server" Text="Elimina" />
        
    
        Aggiungi nuovo ruolo
        
    
        Nome: <asp:TextBox ID="txtNuovoRuolo" runat="server" />
        
    
        <asp:Button ID="btnNuovoRuolo" runat="server" Text="Aggiungi" />
        </div>
        <asp:Label ID="lblMessaggio" runat="server" />
        </form>
    </body>
    </html>
    questa è la pagina Ruoli.aspx

    e questa la pagina Ruoli.aspx.vb

    codice:
    Partial Class Amministratore_Ruoli
        Inherits System.Web.UI.Page
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Aggiorna()
        End Sub
    
        Sub Aggiorna()
            lstRuoli.DataSource = Roles.GetAllRoles()
            lstRuoli.DataBind()
        End Sub
    
        Protected Sub btnNuovoRuolo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNuovoRuolo.Click
            Try
                Roles.CreateRole(txtNuovoRuolo.Text)
                Aggiorna()
            Catch ex As Exception
                lblMessaggio.Text = ex.Message.ToString()
            End Try
        End Sub
    
        Protected Sub btnCancellaRuolo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancellaRuolo.Click
            lblMessaggio.Text = lstRuoli.SelectedItem.Value.ToString()
            Aggiorna()
        End Sub
    
    End Class
    In teoria il mio scopo era quello di far cancellare l'elemento con il metodo DeleteRole, ma mi sono accorto che non riesco neppure a prelevare l'elemento selezionato, perchè?
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

  8. #8
    Prova un po':

    codice:
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       If not IsPostBack Then Aggiorna()
    End Sub
    "La vendetta è un piatto che va gustato freddo"
    Antico proverbio Klingon.
    Lo chiamavano il 'Computer Umano'. Sapeva contare fino a 20 e nudo fino a 21!

  9. #9
    Ti adoro!!!!
    Enrico Frison
    El signore ghe da e suche a chi che no ga i porsei!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.