2012-04-20 9 views
4

私の検索フィールドには、検索クエリの結果を取得するために$.postを使用するプロジェクトがあります。 私の問題:ユーザーが検索ボタンをクリックすると正しく動作しますが、ユーザーが検索ボタンを再度クリックしてから、私のthead列をクリックすると、jqueryソーターは以前の検索結果をテーブルに複製します。私のテーブルはJquery Table Sorterで重複した行を取得します

ソート機能が重複しないようにこれをどのように解決できますか?

これは、検索ボタンクリックのJqueryコードです。

 $(function() { 
      $('#submitfloat').click(function() { 
       $('#loading').show(); 
       setTimeout(function() { $("#loading").hide(); }, 800); 
       var SubjectTypes = $('#SubjectTypes').val(); 
       var Teams = $('#Teams').val(); 
       var Companies = $('#Companies').val(); 
       var Consultants = $('#Consultants').val(); 
       var PlannedDates = $('#PlannedDates').val(); 
       var CompletedDates = $('#CompletedDates').val(); 
       var DateTypes = $('#DateTypes').val(); 
       var data = { 
        Subjectypes: SubjectTypes, 
        Companies: Companies, 
        Teams: Teams, 
        Consultants: Consultants, 
        PlannedDates: PlannedDates, 
        CompletedDates: CompletedDates, 
        DateTypes: DateTypes 
       }; 

       var fromDate = $('#PlannedDates').val(); 
       var endDate = $('#CompletedDates').val(); 
       if (Date.parse(fromDate) > Date.parse(endDate)) { 
        jAlert("End date must be later than start date", "Warning"); 
        return false; 
       } else { 
        $('#GoalcardSearchResult tbody').hide(); 
        setTimeout(function() { $("#GoalcardSearchResult tbody").show(); }, 800); 
        $.post('@Url.Action("Search", "SearchNKI")', data, function (result) { 

         $("#GoalcardSearchResult tbody").empty(); 


         result.forEach(function (goalcard) { 

          $("#GoalcardSearchResult tbody").append(
           $('<tr/>', { 
            click: function() { 
             id = goalcard.Id; 
             var url = '@Url.Action("AnswerForm", "AnswerNKI", new { id = "__id__"})'; 
             window.location.href = url.replace('__id__', id); 


            }, 

            html: "<td>" + goalcard.Name + "</td><td>" + goalcard.Customer + "</td><td>" + goalcard.PlannedDate + "</td><td>" + goalcard.CompletedDate + "</td>" 
           })); 
         }); 
         $("#GoalcardSearchResult").tablesorter(); 
        }); 
        return false; 
       } 
      }); 
     }); 

ご協力いただきありがとうございます。

答えて

5

ユーザーがソートボタンをクリックする前に、すでにtablesorterが初期化されていると思います。これで

$("#GoalcardSearchResult").tablesorter(); 

$("#GoalcardSearchResult").trigger('update'); 
その場合には、このコードを置き換え
関連する問題