2017-11-07 12 views
2

내 GridView에 페이지 매김을 추가하려고했습니다. gridview는 탭 중 하나 인 탭 안에 있습니다.Bootstrap은 ASP.NET에서 gridview 페이지 매김을 사용하여 현재 탭을 저장합니다.

HTML 코드는 다음과 같습니다

<div id="Tabs" class="row"> 
<ul class="nav nav-tabs"> 
    <li class="active"><a data-toggle="tab" href="#home">Home</a></li> 
    <li><a data-toggle="tab" href="#menu1">Menu 1</a></li> 
    <li><a data-toggle="tab" href="#menu2">Menu 2</a></li> 
</ul> 

<div class="tab-content"> 
    <div id="home" class="tab-pane fade in active"> 
    <h3>HOME</h3> 
    <p>Some content.</p> 
    </div> 
    <div id="menu1" class="tab-pane fade"> 
    <h3>Menu 1</h3> 
    <p>Some content in menu 1.</p> 
    </div> 
    <div id="menu2" class="tab-pane fade"> 
    <h3>Menu 2</h3> 
    <p>Some content in menu 2.</p> 
    </div> 
</div> 
</div> 

나는 현재 탭 ID를 저장하는 트릭을 사용하고 매번 페이지가이 탭 보여주기 위해로드 :

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

하고 스크립트를 :

$(document).ready(function() { 
      var tabName = $("[id*=TabName]").val() != "" ? $("[id*=TabName]").val() : "home"; 
      $('#Tabs a[href="#' + tabName + '"]').tab('show'); 
      $("#Tabs a").click(function() { 
       $("[id*=TabName]").val($(this).attr("href").replace("#", "")); 
      }); 
     }); 

Page_load 코드 :

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      populateAllGrids(); 
     } 
     else 
      TabName.Value = Request.Form[TabName.UniqueID]; 

    } 

탭 안에서 버튼을 클릭하면 효과적이지만, 페이지 매김의 링크를 클릭하면 TabName 값이 링크 자체로 설정됩니다.

예를 들어,이 설정됩니다 : 그런데

ctl00$ContentSection$TabName:javascript:__doPostBack('ctl00$ContentSection$grvManufacturers','Page$2') 

, 내가 크롬의 콘솔에서의 GridView의 두 번째 페이지에 저를 이동 링크를 실행할 때, 그것은 잘 작동합니다.

어떤 생각을하고있는 것 같습니까?

감사합니다.

답변

0

그래서 문제가 무엇인지 발견했습니다.

스크립트 코드에 문제가 있습니다. 탭 내의 모든 <a> 링크를 수신하고 TabName의 값을 href로 설정합니다. 그것은 탭에서 유일한 링크가 탭 버튼 자체 일 때 훌륭하게 작동합니다. 그러나 페이지 매기기 단추는 <a> 링크이며 작동하지 않습니다.

<script> 
     $('#ContentSection_ddlOptions').selectpicker(); 

     $(document).ready(function() { 
      var tabName = $("[id*=TabName]").val() != "" ? $("[id*=TabName]").val() : "addManufacturer"; 
      $('#Tabs > .nav-tabs a[href="#' + tabName + '"]').tab('show'); 
      $("#Tabs > .nav-tabs a").click(function() { 
       $("[id*=TabName]").val($(this).attr("href").replace("#", "")); 
      }); 
     }); 
    </script> 
: 여기

은 시간을 작동 고정 스크립트입니다