2017-11-07 4 views
2

私はGridViewにページネーションを追加しようとしていました。グリッドビューは、タブの1つであるタブの内側にあります。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') 

、私はChromeのコンソールからのGridViewの2ページ目に私を移動するリンクを実行すると、それが正常に動作します。

どのようなアイデアを作っているのでしょうか?

ありがとうございました

答えて

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> 
:ここ

はいつでも動作します固定スクリプトです
関連する問題