2012-06-20 6 views
0

다음 게시물과 거의 동일한 질문을 가지고 있습니다. (두 답변을 모두 시도했지만 어느 것도 작동하지 않습니다.), TabContainer가 마지막 페이지 또는 안 함 - tabcontainer가 포함 된 updatePanel이 업데이트되면 페이지가 위 또는 아래로 건너 뛰는 것을 방지하고 싶습니다. (- 활성 하나 - 물론, 나는 그것이 실제로 탭 패널 같아요. 초점을 받고,하지 정말있는 TabContainer)AjaxToolkit : 페이지의 TabContainer가 포스트 백에 중점을 둡니다.

AjaxToolkit: the last TabContainer on the page is focused on page load

포스터 위의 링크에서, 내가 명시 적으로 포커스를 설정하지 않은 말했듯이, 그래서 왜 포커스가 내 tabPanel로 설정되는지 알 수 없습니다. 디버깅 할 때 Ajax에 의해로드 된 자바 스크립트가 포커스를 설정한다는 것을 알 수 있습니다.

내가 설정할 수있는 속성이 없으면 (autofocus = false?) 포커스가 설정되지 않도록 모든 ajax javascript가 실행되고있는 것을 오버라이드합니다.

그러나 이것에 대해 어떻게해야할지 모르겠습니다. 그 자바 스크립트 소스 어딘가에 게시 된, 그래서 그것을 복사 할 수 있습니다 초점 명령을 주석 및 재정의?

나는 아약스 스크립트의 릴리스 버전을 디버깅했다

UPDATE. 사용할 수있는 디버그 버전이 있다는 것을 몰랐습니다. web.config에서 디버깅을했는데 ScriptManager에도 ScriptMode = "Debug"가 필요합니다. 내가 설정하면 내부 아약스 코드의 디버그 버전을 얻는다. 나는 아직 끝나지 않았지만, 포커스를 설정하고 무시할 것을 요구하지 않고 포커스를 설정하는 공격적인 코드를 찾을 수 있어야한다고 생각합니다. 나는 끝나면 대답을 게시 할 것이다.

답변

3

마지막으로 아약스를 디버깅하여 공격적인 코드를 찾아 재정 의하여 해결했습니다.

누구나 동일한 문제가 발생하는 경우 AjaxCotnrolToolkit 버전 4.1.60501.0이고 아래는 Tabs.Tabs.js에 있습니다. 성가신 자동 초점을 중지하려면이 스크립트를 페이지에 붙여 두십시오.

지금까지는 사용하지 않으 셨지만 원하는 경우 조건부로 사용 중지 할 수 있습니다.

아래와 원래 방법의 유일한 차이점은 주석 처리 된 행입니다.

Sys.Extended.UI.TabContainer.prototype._app_onload = function (sender, e) { 
      if (this._cachedActiveTabIndex != -1) { 
       this.set_activeTabIndex(this._cachedActiveTabIndex); 
       this._cachedActiveTabIndex = -1; 

       var activeTab = this.get_tabs()[this._activeTabIndex]; 
       if (activeTab) { 
        activeTab._wasLoaded = true; 
        //activeTab._setFocus(activeTab);  // the only change made to this prototype 
       } 
      } 
      this._loaded = true; 
     } 

편집 : 와우, 난 그냥이 정확히 내가 위에서 게시 된 원래의 링크에서 제공 한 동일한 코드났습니다. 나는 그것이 나를 위해 일하는 것을 방해하기 전에 내가 어리석은 실수를 저질렀 음에 틀림 없다.

+0

오늘이 도움이되었습니다 .. 감사합니다. –

관련 문제