2012-08-06 2 views
1

내 페이지에 JQuery 탭이 있고 현재 서버 코드를 다시로드하거나 실행하면 탭이 첫 번째 페이지로 돌아갑니다. 탭 유지?asp.net에서 JQuery 탭을 다시로드 할 때

$(function() { 
      var tabContainers = $('div.tabs > div'); 
      $('div.tabs ul.tabNavigation a').click(function() { 
       tabContainers.hide(); 
       tabContainers.filter(this.hash).show(); 
       $('div.tabs ul.tabNavigation a').removeClass('selected'); 
       $(this).addClass('selected'); 
       return false; 
      }).filter(':first').click(); 

     }); 

내 탭 :

<div class="tabs"> 
     <ul class="tabNavigation"> 
      <li><a href="#Annoucments">Annoucments</a></li> 
      <li><a href="#Events">Events</a></li> 
      <li><a href="#Photos">Photos</a></li> 
      <li><a href="#JobOpportunities">Job Opportunities</a></li> 
      <li><a href="#Contacts">Contacts</a></li> 
      <li><a href="#Videos">Videos</a></li> 
     </ul> 
     <div id="Annoucments" class="ContentDIV"> 
     .. 

     </div> 
     <div id="Events" class="ContentDIV"> 

      .. 
     </div> 

     <div id="Photos" class="ContentDIV"> 
      .. 

     </div> 

     <div id="JobOpportunities" class="ContentDIV"> 
      .. 
     </div> 

     <div id="Contacts" class="ContentDIV"> 
      ... 

     </div> 

     <div id="Videos" class="ContentDIV"> 
      .. 

     </div> 

    </div> 
+0

안녕하세요. 콘텐츠 패널에 업데이트 패널을 추가해보세요. ASP Ajax를 사용하여이 작업을 수행 할 수도 있습니다. 시도 해봐. 그 비트 까다 롭지만 좋은 솔루션. –

답변

0

넣어 페이지가

내 JQuery와 다시로드 할 때 나는 현재 선택한 탭에 머물 것이 아니라 첫 번째 탭으로 돌아가 내 탭을 싶습니다 귀하의 페이지 URL에 매개 변수를 가져옵니다. 예를 들어 yourpage.aspx? page = 1을 사용할 수 있습니다. 그런 다음 쿼리 문자열에서 해당 매개 변수를 가져 와서 서버 측 코드 (가장 좋음) 또는 페이지의 jQuery에서 직접 (좋은 해결책은 아니지만 작동 할 것입니다) 직접 선택한 클래스를 적용하십시오. 적절한 탭.

EDIT (코드 샘플)

$('#[formID]').onSubmit(function() { 
    var tab = $('.selected').prop('href'); 
    // Append a hidden field to the form containing tab. Example below 
    return true; 
} 

... 그리고 서버에서 페이지를로드 할 때, 단순히 전달 된 값을보고 요소로 '선택'클래스를 적용 할 수 있습니다.

예 : 당신은 어딘가에 사용자 상태 저장해야 jQuery - add additional parameters on submit (NOT ajax)

+0

그래서 각 탭을 클릭하면 같은 페이지에서 GET을 수행합니까? 그것은 탭을 가지고있는 목적을 무효로합니다. –

+0

예제를 제공해 주시겠습니까? 위의 시나리오를 사용합니까? 감사! –

+0

아니요, 같은 페이지에서 GET을 수행하지 않습니다 ... GET은 페이지가 다시로드 될 때만 ... 양식을 제출할 때/현재로드 된 페이지의 ID를 가져 오기 위해 일부 코드를 다시로드합니다. 다른 탭을 클릭하면 탭이 표시됩니다 ... 페이지를 다시로드하거나 양식을 제출하면 매개 변수가 추가됩니다. 나는 바쁘다. 그러나 오랫동안 기다릴 수 있다면 몇 시간 안에 코드를 줄 것이다. –

0

:

  1. URL - URL을 구문 분석하고 당신의 탭 secion의 여부를 결정합니다.
  2. 쿠키 - 사용자 정보 (예 : 선택한 탭)의 쿠키를 작성합니다.
  3. 세션 - 쿠키와 동일합니다.
  4. 사용자 지정 숨김 필드 또는 asp.net ViewState.
0

시도해 볼 수있는 한 가지 방법은 현재 선택된 탭의 href 값을 유지하는 숨겨진 필드를 유지하는 것입니다. 이렇게하면 다시 게시가있을 때 해당 숨겨진 필드에서 값을 읽고 올바른 탭을 선택할 수 있습니다.

관련 문제