2010-02-04 2 views
1

좋은 아침 stackoverflow!asp.net 페이지에서 radiobuttonlist 선택 패널 표시 속성 변경

나는 약간의 문제가있다. 나는 인생을 나에게 괴롭 히고있는 것을 해결하려고 노력하고있다!

내 .aspx 페이지에서 사용자 선택 (라디오 버튼 목록)에 따라 특정 패널을 표시하거나 숨길 수 있기를 원합니다.

예를 들어, 내 aspx 페이지에서;

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

그럼 내 aspx.vb에서;

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 

나는이 코드의 몇 가지 다른 변형과 함께 select 문을 시도했습니다. 사람이 일을 해결하는 방법에 대한 조언을 제공 할 수있는 경우는 크게

감사를 감사 많은, 필

편집 : 더 시도하고 지금이 MSDN에 약간의 독서 후

;

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 

하지만 내가 코드를 실행하려고 할 때; RadioButtonList1.SelectedItem.Equals (3) 그런 다음

답변

1

몇 가지 이유가 있습니다. 첫째, 선택한 항목이 없으므로 "RadioButtonList1.SelectedItem.Equals (3)"을 수행하려고하면 SelectedItem이 Nothing이므로 Equals 비교를 수행 할 개체가 없습니다.

다음으로 SelectedItem이 3인지 확인하려고합니다. SelectedItem은 ListItem object입니다. 해당 객체의 Value 속성을 비교하려고합니다. RadioButtonList1.SelectedItem.Value

마지막으로 RadioButtonList1.SelectedItem.Value는 문자열을 반환하므로 숫자가 3인지 여부를 묻는 것이므로 .Equals는 true가 아닙니다. 문자열 "3"과 동일합니다.

문자열 "3"에 RadioButtonList1.SelectedItem.Value을 비교 한 후 선택한 값이 있는지 체크 던져, 그것을 수정하고하려면 :

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 

트릭을 할 수있는 경우

그렇지 않으면 당신은 항상 자바 스크립트를 사용하려고 할 수 있습니다,이 라인에서 "개체 참조가 개체의 인스턴스로 설정되지 않습니다"또는 중 하나에 그런 JQuery와 또는 뭔가 설정

display = none 

또는 (jQuery로) 호출

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