2016-11-01 8 views
0

剣道のデータソースを作成して私のapiに呼び出すと、10ページのページに限定されています。私の問題は、ページャが最初のページに戻らないということです。たとえば、私が電話をかけてapiに電話して50件の結果を受け取ると、5つのページにそれぞれ10個のアイテムが表示されます。私は第5ページに行くことを選択し、私は別の呼び出しを行い、1ページを作る10項目だけを受け取る。しかし、その後、カルは完了する。私はまだ5ページ目にいる。最初のページにはリセットされません。剣道のページャは最初のページにリセットされません

var dataSource = new kendo.data.DataSource({ 
    page:1, << From what I read this is suppose to do the job 
    pageSize: 10, 
    transport: { 
     read: { 
      type: "POST", 
      url: location + "/api/ContentSearch/SearchRequest", 
      contentType: 'application/json', 
      beforeSend: function (req) { 
       req.setRequestHeader("Authorization", "Bearer " + token); 
      } 
     }, 
     parameterMap: function (option, operation) { 
      return JSON.stringify(query); 
     } 
    }, 
    change: function (e) { 
     var data = this.data(); 
     $("#searchButton").prop("disabled", false); 
     $("#loadingGif").hide(); 
     //kendoPager.page(1); << does not work 
     switch (data.length) { 
      case 0: 
       FeedBackMessage("No result found"); 
       break; 
      case 500: 
       FeedBackMessage("Please check or refine the search"); 
       break; 
      default: 
       $('#pager').show(); 
       $('#descriptionColumn').show(); 
       $("#listView").show(); 
       $("#keyWordText").val("").data("kendoDropDownList").text(""); 
       $("#searchText").val(""); 

     } 
     return data; 
    }, 
    error: function (e) { 
     $("#loadingGif").hide(); 
     ErrorHandler(e.sender.transport.options.read.url, e.xhr.status, e.xhr.statusText, "Kendo datasource was not binded to the WebApi response", "", true);   
    } 
}); 

function SubmitSearch(e) { 
    e.preventDefault(); 

    query = { 
     SearchText: $("#searchText").val(), 
     KeywordText: generalContentKeywords.text(), 
     GlobalSearch: true 
    }; 
    if (query.SearchText === "" && query.KeywordText === "Select Category") { 
     FeedBackMessage("Please enter a value"); 
    } 
    else { 
     if (query.KeywordText === "Select Category") { 
      query.KeywordText = ""; 
     } 
     $.when(TokenForWebApi()).then(function (adalToken) { 

      token = adalToken; 
      $('#pager').hide(); 
      $('#descriptionColumn').hide(); 
      $("#listView").hide(); 
      $("#searchButton").prop("disabled", true); 
      $("#loadingGif").show(); 
      dataSource.read(); 
     }); 


    } 
}; 

var kendoPager = $("#pager").kendoPager({ 
    dataSource: dataSource, 
}).data("kendoPager"); 

答えて

0

私は私のデータソースが任意のデータを持っている、そしてそれは、それが戻って1にページを設定リセットしないことを発見した場合かどうかを確認するための機能を提出変更することで、この問題に対処しました。以前のコードを推測していますが、データソースに値を設定する前にページ値を設定しようとしていました。

function SubmitSearch(e) { 
    e.preventDefault(); 
    query = { 
     SearchText: $("#searchText").val(), 
     KeywordText: generalContentKeywords.text(), 
     GlobalSearch: true 
    }; 
    if (query.SearchText === "" && query.KeywordText === "Select Category") { 
     FeedBackMessage("Please enter a value"); 
    } 
    else { 
     if (query.KeywordText === "Select Category") { 
      query.KeywordText = ""; 
     } 
     $.when(TokenForWebApi()).then(function (adalToken) { 
      if (dataSource._pristineData.length) { 
       kendoPager.page(1); 
      } 
      token = adalToken; 
      $('#pager').hide(); 
      $('#descriptionColumn').hide(); 
      $("#listView").hide(); 
      $("#searchButton").prop("disabled", true); 
      $("#loadingGif").show(); 
      dataSource.read(); 
     }); 
    } 
}; 
関連する問題