2009-12-09 4 views
0

jquery와 함께 asp.net을 사용하고 있습니다. Default.aspx에서 ajax 호출로 데이터를로드하는 jquery-tabs를 구현했습니다. 다른 asp.net 페이지 MyTab.aspx를로드합니다. 내 문제는 내가 탭 (MyTab.aspx)에서 탐색 할 때 항상 전체 페이지 (전체 Default.aspx)를 다시로드하지만 탭 내에서 다시로드하기를 원할뿐입니다. 예를 들어 항목을 추가 할 때 탭을 다시로드하기 만하면됩니다.asp.net jquery 탭 및 업데이트 패널

그래서 MyTab.aspx 내에 updatepanel을 추가했습니다. 문제는 이제 Default.aspx의 모든 링크가 깨져서 클릭 할 때 전체 창에서 선택된 탭을 열뿐입니다. 매우 이상하지만, 때때로 jquery와 함께 작동하도록 updatepanels를 얻는 것이 지저분 할 수 있다는 것을 읽었습니다.

내 코드는 아래에서 볼 수 있습니다. 작동 시키려면 다른 방법이 있습니까? Default.aspx를에

:

<html> 
    <head runat="server"> 
     <script type="text/javascript"> 
      $(function() { 
       $('.tabs').tabs(); 
      }); 
     </script> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" /> 
     <div class="tabs"> 
      <ul> 
       <li><a href="#PanelTab">Tab0</a></li> 
       <li><a href='MyTab.aspx?type=1'>Tab1</a></li> 
       <li><a href='MyTab.aspx?type=2'>Tab2</a></li> 
      </ul> 
      <div id="PanelTab">Content0</div> 
     </div> 
    </form> 
    <body> 
<html> 

MyTab.aspx에서 :

<html> 
    <body> 
     <form id="formTab" runat="server"> 
      <asp:ScriptManager ID="ScriptManagerTab" runat="server" EnablePartialRendering="true" /> 
      <asp:UpdatePanel runat="server" ChildrenAsTriggers="true" ID="UpdatePanelList" UpdateMode="Always"> 
       <ContentTemplate> 
        <asp:SqlDataSource ID="DSTab" 
         runat="server" 
         DataSourceMode="DataSet" 
         ConnectionString="XXX" 
         ProviderName="MySql.Data.MySqlClient" 
         SelectCommand="XXX" 
         > 
         <SelectParameters> 
          <asp:QueryStringParameter QueryStringField="type" Name="?type" /> 
         </SelectParameters> 
        </asp:SqlDataSource> 
        <asp:GridView ID="GridViewTab" DataKeyNames="id" DataSourceID="DSTab" AutoGenerateColumns="false" runat="server" > 
         <Columns> 
          <asp:TemplateField> 
           <ItemTemplate> 
            <asp:HyperLink ID="HyperLinkTab" NavigateUrl='Item.aspx' runat="server"><%# Eval("title")%></asp:HyperLink> 
            <asp:Button OnClick="AddItem" ID="ButtonAddItem" Text="Add" runat="server" /> 

           </ItemTemplate> 
          </asp:TemplateField> 
         </Columns> 
        </asp:GridView> 
        <asp:Button OnClick="CreateNewItem" ID="ButtonCreateNewItem" Text="Create New" runat="server" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </form> 
    </body> 
</html> 

답변

1

업데이트 패널 외부에서 탭을 확인합니다. 문제를 해결할 것입니다.

0
<script type="text/javascript"> 
$(function() { 
    $("#tabs").tabs({ 
     cookie: { 
      // store cookie for a day, without, it would be a session cookie 
      expires: 1 
     } 
    }); 

}); 
function pageLoad(sender, args) { 
    if (args.get_isPartialLoad()) { 
     //Dialog Code 
     $("#tabs").tabs({ 
      cookie: { 
       // store cookie for a day, without, it would be a session cookie 
       expires: 1 
      } 
     }); 


    } 
}