2010-02-04 5 views
1

Bonjour stackoverflow!Modification de la propriété de visibilité du panneau sur la sélection de radiobuttonlist dans asp.net page

J'ai un petit problème J'essaye de m'arranger pour que ça tue la vie de moi!

Sur ma page .aspx, je veux être en mesure d'afficher et de masquer certains panneaux en fonction des sélections de l'utilisateur (radiobuttonlists).

Par exemple dans ma page aspx j'ai;

<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> 

Puis dans mon aspx.vb j'ai; J'ai également essayé quelques variantes de ce code, en essayant une instruction select. Si quelqu'un pouvait offrir tout conseil sur la façon de travailler sur celui-ci, il apprécie grandement ce

Merci beaucoup, Phil

EDIT:

Après de nouvelles tentatives et quelques lectures sur msdn j'ai maintenant;

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 

Mais quand j'essaye d'exécuter le code je reçois;

« référence d'objet non définie à une instance d'un objet » sur cette ligne Si RadioButtonList1.SelectedItem.Equals (3) Ensuite

Répondre

1

Vous avez quelques raisons qui se produisent. Tout d'abord, il n'y a pas d'élément sélectionné, donc quand vous essayez de faire "RadioButtonList1.SelectedItem.Equals (3)", SelectedItem est Nothing, donc il n'y a pas d'objet pour effectuer la comparaison Equals.

Ensuite, vous essayez de voir si SelectedItem est égal à 3. Le SelectedItem sera un ListItem object. Vous voulez comparer la propriété Value de cet objet: RadioButtonList1.SelectedItem.Value

Enfin, depuis RadioButtonList1.SelectedItem.Value renvoie une chaîne, que .Equals ne sera jamais vrai car vous demandez si le numéro 3 est le Identique à la chaîne "3".

Pour résoudre ce problème, jeter un chèque pour voir s'il y a une valeur sélectionnée puis comparer la RadioButtonList1.SelectedItem.Value à la chaîne « 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 
0
panel.enabled = false 

pourrait faire l'affaire, sinon vous ne pouvez toujours essayer d'utiliser javascript ou jquery ou quelque chose comme ça soit mis

display = none 

ou composez le (avec jquery)

$('#Panel1').hide(); 
Questions connexes