2009-07-14 3 views
0

페이징 함께 gridview있는 사용자 정의 컨트롤이 있습니다. 페이징은 객체 데이터 소스에 의해 구동되므로 기본적으로 dopostback 이벤트를 사용합니다.asp.net 사용자 컨트롤 gridview 함께 jquery 아약스 탭

jquery를 사용하여 ajax를 통해 tab에 usercontrol을로드하고 싶습니다. 필요없는 경우 한 번에 모두로드하고 모든 데이터베이스 조회를 수행하지 않으려 고하는 여러 탭이 있기 때문입니다.

그래서 그 사용자 정의 컨트롤을 빈 aspx 파일에두고 해당 aspx 파일에 탭의 href =를 설정합니다. gridview는 잘로드되고 멋지게 보입니다.

내가 겪고있는 문제는 gridview에서 페이지를 변경하려고 할 때 포스트 백이 aspx 파일의 URL로 가고 탭이있는 페이지가 아닌 것입니다. 이 일이 일어날 것으로 알고 있지만, 나는 그것이 올바른 페이지로 다시 게시하고 탭 내에서 작업 할 수 있도록 내가 할 수있는 일을 할 수 있는지 궁금합니다.

주위의 업데이트 패널 유무에 관계없이 작동하지 않습니다.

도움을 주시면 감사하겠습니다.

string tab = Request.Params["tab"]; 

if(tab == "gridViewOnly") 
{ 
// make the gridview visible and do only needed calls to DB 
} 

답변

2

클라이언트 : 당신은 표시 할 필요가있는 탭을 확인할 수 있습니다 서버 측에서 그런

MyTabs.aspx?tab=gridViewOnly 

:

0

당신은 URL 매개 변수를 사용하여 다른 탭에 대해 동일한 영문 파일을 사용할 수 있습니다 :

<script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 

     var hdn = document.getElementById('<%= tabid.ClientID %>'); 

     var tbs = $("#tabs").tabs({ 
      select: function (event, ui) {      
       if (hdn) hdn.value = ui.index; 
      } 
     }); 

     tbs.tabs('select', <%= sel %>); 

    }); 
</script> 

<asp:HiddenField ID="tabid" runat="server" /> 

서버 :

method Tabs.Page_Load(sender: Object; e: EventArgs); 
begin 
    if (page.isPostBack) then 
     sel := tabid.Value 
    else 
     sel := "0"; 
end; 
셀프 페이지 클래스의 공용 속성입니다

:

Tabs = public partial class(System.Web.UI.Page) 
    public property sel : String := '0';