2009-08-04 8 views
0

단일보기에서 세 세트의 페이지 된 데이터를 갖습니다. 각 모델에 대한 의미합니다 나는ASP.NET MVC에서 여러 데이터 세트를 페이지하는 방법

  • 객체
  • 페이지의 색인이있을 것이다

내 초기 생각은, 예를 들면이었다 페이지 크기 : 그럼 가진

public class PagedModel<T> where T:class 
{ 
    public IList<T> Objects { get; set; } 
    public int ModelPageIndex { get; set; } 
    public int ModelPageSize { get; set; } 
} 

예를 들어 액션에 제공 될 모델 :

그때 예를 들어 유형의 인덱스보기 상속이있는 경우 6,
public class TypesViewModel 
{ 
    public PagedModel<ObjectA> Types1 { get; set; } 
    public PagedModel<ObjectB> Typed2 { get; set; } 
    public PagedModel<ObjectC> Types3 { get; set; } 
} 

그래서 :

System.Web.Mvc.ViewPage<uk.co.andrewrea.forum.Web.Models.TypesViewModel> 

을 이제 인덱스에 대한 내 초기 aciton 방법은 간단하다 :

public ActionResult Index() 
    { 
     var forDisplayPurposes = new TypesViewModel(); 
     return View(forDisplayPurposes); 
    } 

내가 다음에 원하는 경우 페이지에서, 내가 취해야 할 조치를 결정하는 데 어려움을 겪고있는 곳입니다. Types2 PageModel의 다음 페이지를 선택한다고합시다. 어떤 행동이 내가 작업을 복제하지만 POST

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Index(TypesViewModel model) 
{ 
    return View(model); 
} 

와 함께 사용 가능하게 생각했다 Types2 PageModel

의 두 번째 페이지를 표시하는 새로운 뷰를 반환하기 위해이를 위해 같이해야 할 것은 이것을인가 그것을 접근하는 좋은 방법. 저는 항상 Session이 있다는 것을 이해 합니다만, 저는 그런 일이 현재 어떻게 이루어지고 있는지 궁금합니다. 가장 좋은 방법이 서로 받아 들여지고 있다면.

간단히 말해 페이지가 여러 개인 모델이 하나있는 페이지입니다. 래퍼 모델을 사용하여 각각에 대한 데이터를 유지하는 방법. 당신은 모델에 통과해야하며, 어떤 방법 당신은 데이터, 즉 양식 포스트

마지막으로는, 내가 본 페이지 노선

{controller}/{action}/{id}/{pageindex}/{pagesize} 

즉,이 점을 고려해야한다하지만 어떤 방법으로 하나 개의 모델이 계정 만 래퍼 모델 내부에있는 모델 수에 대한 pagesize 및 pageindex 값을 반복하는 것을 정말로 원하지는 않습니다.

시간 내 주셔서 감사합니다.

앤드류

+0

문제는 무엇인가

그래서 당신이 URL에이 두 매개 변수를 전달 대해 걱정할 필요가 없습니다, 당신이 필요로하는 유일한 PARAM은 PAGENO입니까? 어떻게 노선을 구성 할 수 있습니까? –

+0

하나의 페이지에 여러 개의 데이터 세트가 포함되어있어 별도로 페이지해야하는 경우 즉, pageIndex1/pageSize1/pageIndex2/pageSize2 등을 원하지 않는 경우 경로와 모델을 처리하는 데 좋은 방법입니다. –

답변

0

이럴처럼 당신은 단지 객체의 수집하지만, 수집 일부 확장 유형의 예를 들어, 뭔가를했을 경우 :

public class PagedModelElement<T> where T:class 
{ 
    public byte Step { get; set; } 
    public string Name { get; set; } 
    public T Value { get; set; } 
} 

public class PagedModel<T> where T : class 
{ 
    public IList<PagedModelElement<T>> Objects { get; set; } 
} 

ModelPageIndex이 필요하지 않습니다 쉽게 반환 할 수 있기 때문에, ModelPageSize뿐만 아니라 일부 페이지 (인덱서를 사용할 수도 있음)에 속한 모든 객체는 일부 페이지에 속한 모든 객체의 Count() 함수로 계산할 수 있습니다.

{controller}/{action}/{pageNo} 
Account/ShowUsers/3 
+0

안녕하세요. 의견을 보내 주셔서 감사합니다. 하지만 제가 말하고자하는 것은 한 페이지에 예를 들어 3 세트의 데이터가 있고 각 페이지를 따로 따로 호출 할 수 있습니다. 예를 들어 데이터 세트 1은 페이지 1에, 데이터 세트 2는 페이지 5에, 데이터 세트 3은 페이지 50에 있습니다! 현재 제가 생각하고있는 시나리오입니다! 나는 당신의 시간과 의견을 고맙게 생각합니다! 앤드류 :-) –

관련 문제