2016-04-29 12 views
1

jqueryとdatatablesを使用していますが、どこかでスタックしています。グリッドビューがあり、選択した行のIDに警告するようにしています。私のonclickイベントは、最初のページのデータに対してのみ機能し、テーブルが最初に入力されたときにのみ呼び出すため、理解できるものです。どうすればページが変更されたときにその機能を実行させることができますか?ここで は私のGridViewのである:データテーブルでページが変更されるたびに関数を呼び出す

<asp:GridView ID="GridView1" CssClass="mGrid" runat="server" DataSourceID="EntityDataSource1" AutoGenerateColumns="False" DataKeyNames="UrunId"> 
      <Columns> 
       <asp:TemplateField ItemStyle-CssClass="hiddenTr" FooterStyle-CssClass="hiddenTr" HeaderStyle-CssClass="hiddenTr"> 
        <ItemTemplate> 
         <%#Eval("UrunId") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="İsim"> 
        <ItemTemplate> 
         <%#Eval("UrunAdi") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Fiyat"> 
        <ItemTemplate> 
         <%#Eval("UrunFiyati") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Para Birimi"> 
        <ItemTemplate> 
         <%#Eval("ParaTipi") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Kategori"> 
        <ItemTemplate> 
         <%#Eval("UrunKategori") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Sınıf"> 
        <ItemTemplate> 
         <%#Eval("MP") %> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

そして、私のjQuery:

$(document).ready(function() { 

     $("#<%=GridView1.ClientID%>").prepend($("<thead></thead>").append($(this).find("tr:first"))).dataTable({ 
      "language": { 
       "search": "Ara", 
       "lengthMenu": "Her sayfada _MENU_ kayıt göster.", 
       "infoFiltered": "_MAX_ kayıt arasından filtrelendi.", 
       "info": "_PAGES_ sayfa arasıdan _PAGE_.sayfa gösteriliyor.", 
       "paginate": { 
        "first": "İlk", 
        "last": "Son", 
        "next": "Sonraki", 
        "previous": "Önceki" 
       } 
      } 
     }); 
     SatirlaraOnclickAt(); 
    }); 

     function SatirlaraOnclickAt() { 
      $("#<%=GridView1.ClientID%> tr").click(function() { 
       var ilkSatir = $("#<%=GridView1.ClientID%>").find("tr:first").find("td:first").text(); 
       var secilenSatir = $(this).find("td:first").text(); 
       if (ilkSatir != secilenSatir) { 
        var id = $(this).find("td:first").text(); 
        alert(id); 
       }  
      }); 
     } 

私が言ったように、機能がうまく動作しますが、私はonclickのページが変更されるたびに機能を実行する必要があります。

答えて

3

あなたが好き、attribut fnDrawCallbackを持っている:

$(document).ready(function() { 
    $('#example').dataTable({ 
    "fnDrawCallback": function(oSettings) { 
     alert('DataTables has redrawn the table'); 
    } 
    }); 
}); 

この関数は、イベントを「描く」ごとに呼び出され、そしてあなたは、動的に作成したDOMについてのあなたが望むあらゆる側面を変更することができますされています。

文書:http://legacy.datatables.net/usage/callbacks