sanjulika
sanjulika

Reputation: 303

Avoid/disable some specific rows from sorting process using jQuery tablesorter.js

I have one table which I am sorting using jquery plugin tablesorter. Here i want to avoid first row {class="avoid-sort" } to be sort when any column is selected for sorting. example:


       <thead>
        <tr>
            <th class="header">#</th>
            <th class="header">Purchase Date</th>
            <th class="header">Course Name</th>
            <th class="header">Amount(in $)</th>
            <th class="header">User Name</th>
            <th class="header">Share</th>
            <th class="header">Net Revenue [$236.41]</th>
        </tr>
      </thead>
  <tbody>

       <tr class="avoid-sort">
            <th colspan="7">Total Revenue</th>
            <td>236.41</td>
        </tr>

        <tr>
                <td>1</td>
                <td>January 3rd, 2013</td>
                <td>Tackle Certification</td>
                <td>50</td>
                <td>Khushi Jha</td>
                <td>35</td>
                <td>33.69</td>
        </tr>
      <tr>
                <td>2</td>
                <td>January 3rd, 2013</td>
                <td>Flag Certification</td>
                <td>100</td> 
                <td>Pay</td>
                <td>70</td>
                 <td>67.67</td>
      </tr>
                            <tr>
                <td>3</td>
                <td>January 3rd, 2013</td>
                <td>Tackle Certification</td>
                <td>50</td>
                <!--                    <td>-->
                    <!--</td>-->
                <td>Pay</td>
                <td>35</td>
                 <td>33.69</td>

   </tr>


tr class="avoid-sort" should not come in sorting!

Please help!!

Upvotes: 25

Views: 17717

Answers (3)

&#193;lvaro Gonz&#225;lez
&#193;lvaro Gonz&#225;lez

Reputation: 146350

In Mottie's fork the staticRow plugin is now built-in:

<script src="/js/tablesorter/jquery.tablesorter.min.js"></script>
<script src="/js/tablesorter/widgets/widget-staticRow.min.js"></script>
<!-- … -->
<tr class="static">…</tr>
$("table").tablesorter({
    widgets: ['staticRow']
})

Alternatively, you can set a custom class name:

<tr class="tablesorter-static">…</tr>
$("table").tablesorter({
    widgets: ['staticRow'],
    widgetOptions: {
        // Note it expects a CSS selector, not a raw class name
        staticRow_class: ".tablesorter-static"
    }
})

Upvotes: 2

ABDUL JAMAL
ABDUL JAMAL

Reputation: 452

$(function() {     
$("#myTable").tablesorter({
        headers: {4: {sorter: false},8: {sorter: false}}
    });
});

here 4,8 are column numbers. column starts with 0

Upvotes: -3

Mottie
Mottie

Reputation: 86403

You have two choices:

  1. If you are using the original tablesorter, you can get this static row widget to "lock" the row in place.

  2. If you are using my fork of tablesorter, you can just add a non-sortable tbody, like this (demo):

    <table>
    <thead>
      ...
    </thead>
    
    <!-- rows within this tbody are ignored -->
    <tbody class="avoid-sort">
      <tr>
        <th colspan="7">Total Revenue</th>
        <td>236.41</td>
      </tr>
    </tbody>
    
    <tbody>
      <!-- sortable rows -->
      <tr>
        ...
      </tr>
    </tbody>
    </table>
    

    then initialize the table like this:

    $(function() { 
    
      $("table").tablesorter({ 
        theme : 'blue', 
        cssInfoBlock : "avoid-sort", 
        widgets: [ 'zebra' ] 
      }); 
    
    });
    

Upvotes: 36

Related Questions