2012-12-17 2 views
0

내 응용 프로그램에서 아래로 스크롤 할 때 페이지로드가 필요합니다. 내 백 엔드로 couchdb를 사용하고 couchdb에서 내 문제를 만족시킬 것으로 생각되는 페이지 매김 옵션을 발견했습니다.C에서 loveseat를 사용하여 couchdb에서 페이지 매김을 수행하는 방법 #

어디서나 페이지 매김을위한 작업 예제를 찾을 수 없습니다. 내 응용 프로그램이이 응용 프로그램과 작동하도록 누군가의 도움이 필요합니다.

은 참조를 위해 이것 좀보세요 : https://github.com/soitgoes/LoveSeat/blob/master/LoveSeat/PagingHelper.cs

이 내 코드입니다. options = model.GetOptions(); 줄에 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."라는 오류가 나타납니다.

public List<newVO> Getdocs(IPageableModel model) 
    { 
     List<newVO> resultList = new List<newVO>(); 
     var etag = ""; 
     ViewOptions options = new ViewOptions(); 
     options = model.GetOptions(); 
     options.StartKeyDocId = lastId; 
     options.Limit = 13; 
     options.Skip = 1; 
     var result = oCouchDB.View<newVO>("GetAlldocs", options); 
     //model.UpdatePaging(options, result); 
     if (result.StatusCode == HttpStatusCode.NotModified) 
     { 
      response.StatusCode = "0"; 
      return null; 
     } 
     if (result != null) 
     { 
      foreach (newVO newvo in result.Items) 
      { 
       resultList.Add(newvo); 
      } 
     } 

     return resultList; 

    } 

미리 감사드립니다. 모든 아이디어를 환영합니다. "옵션 = model.GetOptions();"


public List<newVO> Getdocs(IPageableModel model) 
     { 
      List<newVO> resultList = new List<newVO>(); 
      var etag = ""; 
      ViewOptions options = new ViewOptions(); 
      options = model.GetOptions(); 
      options.StartKeyDocId = lastId; 
      options.Limit = 13; 
      options.Skip = 1; 
      var result = oCouchDB.View<newVO>("GetAlldocs", options); 
      //model.UpdatePaging(options, result); 
      if (result.StatusCode == HttpStatusCode.NotModified) 
      { 
       response.StatusCode = "0"; 
       return null; 
      } 
      if (result != null) 
      { 
       foreach (newVO newvo in result.Items) 
       { 
        resultList.Add(newvo); 
       } 
      } 

      return resultList; 

     } 

이 내 코드와 나는에 오류가 있어요 개체의 인스턴스로 설정되지 않았습니다 참조 객체 라인 ...

+0

"객체 참조가 객체의 인스턴스로 설정되지 않았습니다"라는 오류는 매개 변수로 전달되는 '모델'이 'null'임을 의미합니다. 모델을 사용하기 전에 모델을 null로 확인하십시오. –

답변

1

은 내가 이인용 의자 페이징 구현을 사용하지 않는 한,하지만 당신은 페이징 달성하기 위해 ViewOptionsLimitSkip 속성을 사용할 수 있습니다 :

public static IEnumerable<T> GetPage(this ICouchDatabase couchDatabase, 
    string viewName, 
    string designDoc, 
    int page, 
    int pageSize) 
{ 
    return couchDatabase.View(viewName, new ViewOptions 
    { 
     Skip = page * pageSize, 
     Limit = pageSize 
    }, designDoc); 
} 

이 간단한 확장 메소드는 CouchDB보기에서 데이터 페이지를 가져옵니다.

+0

나에게 명확한 작업 시나리오를 줄 수있다 .... 나는 이것으로 시도했지만 내가 잘못 갔다 ... dono 내가 어디서했는지 .. – Ramesh

+0

"나는 어딘가에 잘못 갔다"는게 무슨 뜻이야? 오류 메시지가 나타 났습니까? 결과가 없습니까? –

+0

그래, 어떤 결과가 나올지 모르겠다. – Ramesh

관련 문제