2010-01-03 2 views
1

지금까지 다른 컨트롤에 따라 div 또는 다른 컨트롤을 표시하거나 숨기는 스크립트를 보았습니다. jQuery에 의해 활성화/비활성화 된 ASP.NET 종속 컨트롤에 대한 초기 활성화 상태 제어

$('[id$=myRadio_0]').click(function() { $('[id$=myDiv]').show(); }); 

$('[id$=myRadio_1]').click(function() { $('[id$=myDiv]').hide(); }); 

물론 ASP.NET

,

<div id="myDiv" runat="server" visible="false"> 

하고 사용자가 radiobuttonlist 중 하나 옵션을 선택 때 잘 작동과 같은 HTML 내 DIV한다.

그러나 radiobuttonlist의 값을 코드에서 내 Page_Load에 1 또는 yes로 지정하면 해당 컨트롤이 jQuery에 걸리지 않고 내 div가 보이지 않게됩니다. 값은 예/1입니다.

코드 뒤에서 해당 div의 가시성을 설정해야합니까, 아니면 코드의 기본 컨트롤 값을 설정 한 후 이러한 종속성을 강제로 검사 할 수있는 jQuery가 있습니까?

답변

1

몇 가지 할 수있는 작업.

1) ID가 "myDiv"인 div를 Panel 서버 컨트롤 (<asp:Panel id="myDiv" runat="server">)로 변경하십시오. 그런 다음 코드 뒤에서 라디오 버튼을 1로 설정하면 패널 컨트롤의 가시성을 설정할 수도 있습니다. 현재 jQuery 코드는 여전히 작동합니다.

2) 페이지가로드 될 때 div 표시 여부를 테스트하기 위해 다른 jquery 행을 작성하십시오. 뭔가 같은

if ($('[id$=myRadio_0]').val() == 1 && $('[id$=myDiv]:hidden') 
    { 
     $('[id$=myDiv]').show(); 
    } 

가 개인적으로 난 당신이 이미 코드 숨김에서 양식의 상태를 설정 상대하고 있기 때문에, 나는에 "설정"코드를 분리하지 않을, 옵션 1 가고 싶어 모두 클라이언트와 서버 코드.

+0

감사합니다. 나는 컨테이너를 asp 대신 div로 남겼다 : Panels, 그리고 언급 한 것처럼, 나는 옵션 1과 함께 갔다 ... 더 우아 해 보인다. 더 좋은 방법이 있기를 바랐습니다. 감사! – GR7

관련 문제