문제

저는 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://cnug.co.in/blogs/shijuv/archive/2010/10/08/using-the-webgrid-helper-in-asp-net-mvc-3-beta.aspx

http://www.nickharris.net/tag/webgrid/

분류, 페이징 및 일부 Ajax 물건을 지원합니다. 이미 많이 할 수 있지만 모든 별도 열을 별도로 지정할 수도 있습니다.

업데이트:
당신을 위해 테이블을 수행 할 수있는 많은 JavaScript 라이브러리도 있습니다. 나는 개인적으로 사용하는 것을 좋아합니다 데이터 가능. 서버에서 생성 된 기존 HTML 테이블을 공급하거나 데이터를 검색 할 수있는 엔드 포인트 (모두 또는 한 페이지)를 제공 할 수 있습니다.

Google 주변에 더 많은 것이 있습니다.

MVC를 사용하면 자신의 정렬, 페이징 등을 굴려야합니다. Yui 데이터 가능 또는 다른 JavaScript 그리드 중 일부.

또한 자체가 무거운 데이터 그리드 작업을 수행하는 경우 ASP.NET 동적 데이터를 살펴 보려면 ORM에 대한 이러한 유형의 상호 작용을 위해 특별히 설계되었습니다.

첫 번째 사용 jQuery. jQuery는 당신의 친구입니다. 그런 다음 jQuery를위한이 멋진 그리드 제어를 사용하십시오. JQGRID.

CustomerController에서 CustomerData라는 조치를 만듭니다. 그리드와의 모든 상호 작용은이 동작을 가리켜 야합니다.

가다 여기 JQGRID를 사용하는 방법에 대한 수많은 예제.

우리는 클라이언트 측 제어 JQXGRID를 사용하고 있습니다 JQWIDGETS 그리고 페이징, 필터링, 내부에 내장 된 정렬과 함께 수많은 레코드와 관련된 성능에 만족합니다. 여기 ASP.NET MVC 내에 결합하는 예입니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top