2016-12-30 8 views
-1

私はwebApiとlinqを使用してSQLからデータを取得しています。今はをロードしています。クリックすると表示されるページにボタンが表示されます20レコードごとに、私は使用しています開始インデックスと終了インデックスは、主キーである私のテーブルの列IDを持っている、私はロードボタンをクリックすると、私は最後のIDは、リストビューから、そのIDは私の開始インデックスを持って、今私の問題は、私は負荷をクリックすると、それは20データをもたらすが、以前のデータが消去されている、私は20 + 20 = 40データを取得する必要がありますこれを達成する。Linqはロード時にデータを取得moreボタンは開始インデックスと終了インデックスでクリックします

//Linq// 
public dynamic getALlImage(int userID, int LastImageID) 
{ 
    //here LastImageId is my Listview Last data ImageID 
    if (LastImageID!=0) 
    { 
     startIndex= LastImageID+20; 
     EndIndex=LastImageID-20; 
    } 
     else 
    { 
     startIndex= 20; 
     EndIndex=0; 
    } 

    GetAllListFields = (from user in dbContext.UserTable 
         join img in dbContext.ImageTable on user.userId equals img.userID into UserVoice 
         from Image in UserVoice.DefaultIfEmpty() 
         where (Image.imgId <= startIndex && Image.imgId >= EndIndex && Image.userID == userID && Image.IsStatusChecked == false) 
         orderby feeds.CreatedAt descending 
         select new 
         { 
          PostImage = Image == null ? 0 : Image.ImageID, 
          Image = usrMessae==null?0: Image.userMessage, 
          createdAt = feeds == null ? DateTime.UtcNow : feeds.CreatedAt, 
          UserId = userdata == null ? 0 : userdata.userId, 
          Name = userdata == null ? " " : userdata.Name, 
          username = userdata == null ? " " : userdata.userName, 
          Email = userdata == null ? " " : userdata.emailID, 
         }).Distinct().OrderByDescending(x => x.createdAt).Take(startIndex).ToList(); 
    } 


     //HTML// 
<div data-role="view"> 
<div> 
<ul data-role="listview" data-bind="foreach:ImageList"> 
<li> 
<div data-bind="text:userID"></div> 
<div data-bind="text:userName"></div> 
<div data-bind="text:UserImageSrc"></div> 
<div data-bind="text:ImageId></div> 
<div data-bind="text:PostImageSrc"></div> 
<div > 
<button data-bind="click:getLoadMoreImageData">Load More</button> 
</div> 
</li> 
</ul> 
</div> 
</div> 

//Knockout Js 
function UserImageViewModel() 
     { 
      self=this; 
      var lastModelValue = (self.FeedPostdata()[self.FeedPostdata().length - 1]); 
      var lastPostImageId = (lastModelValue.ImageId()) 

     //On Load More click last Image ID  
     self.getLoadMoreImageData=function() 
     {  
      $('#loading').show(); 
      var UserModel = { userID:userID,ImageId:lastPostImageId} 
      jQuery.support.cors = true; 
      $.ajax({ 
      type: "POST", 
      dataType: "json", 
      url: serverUrl + 'api/xxx/xxx', 
      data: UserModel, 
      success: function (data) { 
      self.ImageList($.map(data, function (item) { 
        return new ImageModel(item); 
      }));}, 
      complete: function() { 
       $('#loading').hide(); 
      }, 
      error: function (error) { 
       jsonValue = jQuery.parseJSON(error.responseText);} });}} 


     // On Page Load without last Image ID 
      self.getALlUSerImage=function() 
     { 

      $('#loading').show(); 
      var UserModel = { userID: userID} 
      jQuery.support.cors = true; 
      $.ajax({ 
      type: "POST", 
      dataType: "json", 
      url: serverUrl + 'api/xxx/xxx', 
      data: UserModel, 
      success: function (data) { 
      self.ImageList($.map(data, function (item) { 
        return new ImageModel(item); 
      }));}, 
      complete: function() { 
       $('#loading').hide(); 
      }, 
      error: function (error) { 
       jsonValue = jQuery.parseJSON(error.responseText);} }); 
       }} 
       } 


       //Model// 
       function ImageModel(item) 
       { 
       self.userId=ko.observable(item.userId); 
       self.userName=ko.observable(item.UserName); 
       self.UserImageSrc = ko.computed(function() { 
       return "data:" + self.UserImageSrcType() + ";base64," + self.UserImageSrcBase64();}); 

       self.ImageID=ko.observable(item.ImageId) 
       self.PostImageSrc = ko.computed(function() { 
       return "data:" + self.PostImageType() + ";base64," + self.PostImageBase64();});      
       } 

      $(document).ready(function() { 
      ViewModel = new UserImageViewModel(); 
      ko.applyBindings(ViewModel); 
      } 
+5

あなたの 'LINQ'クエリを共有しますか? –

+1

ビューにデータをどのように表示しますか?最後のページのデータを消去していますか?あなたはどのように景色をリフレッシュしていますか? – CodingYoshi

答えて

0

どのようにしたら?

int Page = 1; 
int RecordsPerPage = 10; 
var q = yourQuery.Skip((Page - 1) * RecordsPerPage).Take(RecordsPerPage); 
関連する問題