ASP.NET MVC를 사용한 페이징 및 분류 그리드
-
20-08-2019 - |
문제
저는 MVC를 처음 사용하고 그리드에서 페이징 및 정렬을 수행하는 방법을 따르지 않습니다. 저는 비즈니스 계층의 객체를 가리키는 ObjectDatasource와 함께 ASP.NET GridView 컨트롤을 사용하는 데 익숙합니다.이 경우 ODS는 ORM이 객체에서 생성하는 방법을 사용하여 모든 페이징 및 정렬을 처리합니다.
나는 MVC와 같은 동일한 ORM을 사용하는 것을 보았습니다. 상황이 잘 작동합니다. 페이지에 테이블을 만들기 위해 컬렉션을 통해 루프를 루프합니다. 그러나 페이징 및 정렬을 처리 할 ODS가 없으면 혼란스러워합니다. 내가 그것을 어떻게 처리하는지. 페이징 및 정렬을위한 별도의 컨트롤러가 있습니까?
나는 내 자신을 굴려야한다는 것을 이해하지만 어디서부터 시작해야합니까? CustomerController와 아래에서 보이는 고객 테이블을 표시하는보기를 만들었습니다. FirstName 또는 LastName 열을 정렬하고 싶습니다. 내 모델에는 GridView/ODS 쌍에서 사용될 형식으로 문자열 정렬 식을 취하는 정렬 () 메소드가 있습니다. Sort라는 CustomerController에 새 액션을 만들고 헤더에 ActionLink를 넣을 수 있습니까?
<table>
<tr>
<th>
First Name
</th>
<th>
Last Name
</th>
</tr>
<% foreach (var item in Model)
{ %>
<tr>
<td>
<%= Html.Encode(item.FirstName) %>
</td>
<td>
<%= Html.Encode(item.LastName) %>
</td>
</tr>
<% } %>
</table>
해결책
동일한 컨트롤러를 사용할 수 있고 추가 매개 변수를 추가하고 이름을 정렬하십시오. 그런 다음 컨트롤러를 값 정렬 한 내용을 확인하고 해당 매개 변수를 기준으로 데이터를 정렬하십시오.
또는 클라이언트 측에서 일을하고 싶다면 다음과 같은 것을 사용할 수 있습니다. 테이블 리터, jQuery 용 플러그인.
다른 팁
요즘 MVC 3은 이제 상자 밖에 웹 그리드가 있습니다. 나는이 질문이 얼마 전부터 나온다는 것을 알고 있지만 Webgrid에 대해 무언가를 찾을 때 결국 끝났습니다. 그래서 나는 그것이 새로운 WebGrid를 언급하는 답변이 있어야한다고 생각했습니다.
다음은 사용 방법에 대한 몇 가지 좋은 게시물입니다.
http://www.dotnetcurry.com/showarticle.aspx?id=615
http://www.nickharris.net/tag/webgrid/
분류, 페이징 및 일부 Ajax 물건을 지원합니다. 이미 많이 할 수 있지만 모든 별도 열을 별도로 지정할 수도 있습니다.
업데이트:
당신을 위해 테이블을 수행 할 수있는 많은 JavaScript 라이브러리도 있습니다. 나는 개인적으로 사용하는 것을 좋아합니다 데이터 가능. 서버에서 생성 된 기존 HTML 테이블을 공급하거나 데이터를 검색 할 수있는 엔드 포인트 (모두 또는 한 페이지)를 제공 할 수 있습니다.
Google 주변에 더 많은 것이 있습니다.
MVC를 사용하면 자신의 정렬, 페이징 등을 굴려야합니다. Yui 데이터 가능 또는 다른 JavaScript 그리드 중 일부.
또한 자체가 무거운 데이터 그리드 작업을 수행하는 경우 ASP.NET 동적 데이터를 살펴 보려면 ORM에 대한 이러한 유형의 상호 작용을 위해 특별히 설계되었습니다.