Domanda

Buongiorno StackOverflow!

Ho un piccolo problema che sto cercando di capire questo è intercettazioni la vita fuori di me!

Sulla mia pagina aspx voglio essere in grado di mostrare e nascondere alcuni pannelli a seconda selezioni dell'utente (radiobuttonlists).

Per esempio, nella mia pagina aspx ho;

<form id="form1" runat="server">
    <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True">
        <asp:ListItem>1</asp:ListItem>
        <asp:ListItem>2</asp:ListItem>
        <asp:ListItem>3</asp:ListItem>
    </asp:RadioButtonList>

    <asp:Panel ID="Panel1" runat="server" Width="50%">
        Visible or not visible depending on radio choice<br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </asp:Panel>
    </form>

Poi nel mio aspx.vb ho;

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If RadioButtonList1.SelectedItem.Equals(Nothing) Then
            Panel1.Visible = False
        Else
            RadioButtonList1.SelectedItem.Equals(3)
            Panel1.Visible = True
        End If

    End Sub

Inoltre ho provato un paio di varianti di questo codice, insieme con il tentativo un'istruzione select. Se qualcuno potesse offrire qualche consiglio su come lavorare questo fuori è molto grato

Grazie mille, Phil

EDIT:

Dopo ulteriori tentativi e qualche lettura su MSDN ora ho;

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



' Show or Hide the Panel contents.
    If RadioButtonList1.SelectedItem.Equals(3) Then
        Panel1.Visible = True
    Else
        Panel1.Visible = False
    End If

End Sub

Ma quando provo a fare funzionare il codice ottengo;

"Oggetto non impostato a un'istanza di un oggetto" a questa linea Se RadioButtonList1.SelectedItem.Equals (3) allora

È stato utile?

Soluzione

Hai un paio di motivi che sta succedendo. oggetto In primo luogo, non c'è è selezionato, in modo che quando si sta cercando di fare "RadioButtonList1.SelectedItem.Equals (3)", SelectedItem è nulla, quindi non c'è alcun oggetto per eseguire il confronto Equals.

Quindi, si sta cercando di vedere se il SelectedItem è uguale a 3. Il SelectedItem sarà un ListItem oggetto . Si vuole confrontare la proprietà Value di tale oggetto: RadioButtonList1.SelectedItem.Value

Ultimo, in quanto RadioButtonList1.SelectedItem.Value restituisce una stringa, che .equals non sarà mai vero, perché si sta chiedendo se il numero 3 è la stessa come la stringa "3".

Per risolvere il problema, gettare in un controllo per vedere se c'è un valore selezionato e quindi confrontare il RadioButtonList1.SelectedItem.Value alla stringa "3":

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

    ' Set the panel to hidden by default
    Panel1.Visible = False

    ' Check to see if there's a selected value
    If Not RadioButtonList1.SelectedItem Is Nothing Then
        ' there is.. check to see if the value is correct
        If RadioButtonList1.SelectedItem.Value = "3" Then
            ' it is.. show the panel!
            Panel1.Visible = True
        End If
    End If

End Sub

Altri suggerimenti

panel.enabled = false

potrebbe fare il trucco, altrimenti si può sempre cercare di usare JavaScript o jQuery o qualcosa di simile a uno set

display = none

o chiamare il numero (con jquery)

$('#Panel1').hide();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top