2014-11-11 2 views
4

asp AjaxToolkit을 사용하면 다음과 같이 표시됩니다. asp.net C# 코드.asp AjaxToolkit TabContainer에서 iFrame을 두 번로드

<asp:UpdatePanel ID="UpdatePanelDemo" runat="server"> 
     <ContentTemplate> 
      <ajax:TabContainer ID="tabMessage" runat="server" ActiveTabIndex="1" AutoPostBack="true" 
       OnActiveTabChanged="tabMessage_ActiveTabChanged" CssClass="ajax__tab_blueGrad-theme"> 
       <ajax:TabPanel ID="TabMCompose" runat="server"> 
        <HeaderTemplate> 
         <span style="padding-left: 5px; padding-right: 5px;">Compose </span> 
        </HeaderTemplate> 
        <ContentTemplate> 
        This Text not flickering or not loading twice // ***** 
         <iframe id="IFrmCompose" runat="server" scrolling="no" frameborder="0" height="400px" 
          width="100%"></iframe> 
        </ContentTemplate> 
       </ajax:TabPanel> 
       <ajax:TabPanel ID="tabMInbox" runat="server"> 
        <HeaderTemplate> 
         <span style="padding-left: 5px; padding-right: 5px;">Inbox (<span id="SpnIn" runat="server"></span>)</span> 
        </HeaderTemplate> 
        <ContentTemplate> 
         <iframe id="IFrmInbox" runat="server" scrolling="no" frameborder="0" height="400px" 
          width="100%"></iframe> 
        </ContentTemplate> 
       </ajax:TabPanel> 
      </ajax:TabContainer> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

문제 : 나는 아약스 TabContainer 및 내부 iFrame을 사용할 때 두번째 탭에 1 탭에서 사용자 이동, 페이지로드는 두 번 및 iFrame로드 2 회가 깜박 것으로 보이지만 때 위의 텍스트 위의 그림과 같이 iFrame ('이 텍스트가 깜박이지 않거나 두 번로드되지 않습니다.') 깜박이지 않습니다.

iFrameAjax TabContainer에 문제가있는 것 같습니다.

왜 이런 일이 발생하는지 제안 해주세요.

감사합니다.

+0

'OnActiveTabChanged' 이벤트 트리거는 결과적으로 iframe contentWindow가 다시로드되는 결과로 'UpdatePanel'을 다시로드합니다. 정적 텍스트 또는 일반 HTML 태그 렌더링의 작은 조각에서 많은 지연을 볼 수 없습니다. 'tabMessage_ActiveTabChanged' 메서드에서 무슨 일이 일어나고 있습니까? –

+0

@VenkataPanga -'tabMessage_ActiveTabChanged'에서'IFrmCompose = 'somepage.aspx'와 같은 모든 'iFrames'에 대해'Src'를 할당합니다; IFrmInbox = 'someOtherpage.aspx'; ' – prog1011

+0

[UFrame] 사용 (http://www.codeproject.com/Articles/26330/UFrame-goodness-of-UpdatePanel-and-IFRAME-combined) –

답변

1

코드 숨김이 연결되어 있지 않으므로 100 % 확신 할 수는 없지만 ViewState 문제인 것처럼 보입니다. 리피터 템플릿에 IFrame SRC를 설정하지 않으므로 페이지 초기화가 먼저 IFrame을 비워 둔 다음 변경되지 않은 경우에도 URL을 다시 설정합니다 (깜박임).

제안 : 탭이 변경되면 ViewState 나 기타 탭에서 URL을 유지하고 리피터 템플릿에서 지속 된 값으로 설정하십시오. 불필요한로드를 방지하고 변경 사항을 안정 적으로 감지하려면 항상 빈 프레임 SRC를 "about : blank"로 설정하십시오.

두 가지 일을 동일하게 수행하는 방법 - UpdatePanels/Ajax 컨트롤을 사용하면 IFrame이 필요하지 않으므로 탭의 내용을 AJAX 호출을 통해 가져와 IFrame을 폐기해야합니다.

1

코드 숨김이 연결되지 않았으므로 100 % 확신 할 수 없지만 ViewState 문제인 것처럼 보입니다. 페이지 새로 고침이 동작의 이유 일 수 있습니다.

if (! IsPostback) BindIt();

관련 문제