2012-06-14 6 views
0

데이터 원본에 바인딩 된 목록보기가 있습니다. 열을 기준으로 정렬하려면 어떻게해야합니까?asp.net ListView 열 정렬

그래서 열 제목을 오름차순으로 정렬 한 다음 다시 클릭하면 내림차순으로 정렬됩니다.

마법사가 설치 될 수 있습니까? 아니면 모두 프로그래밍 방식으로 수행해야합니까?

+0

본적이 ** http : //msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.sorting.aspx** –

+0

일반적으로이 작업은 코드 작성기 데이터베이스 뒤에서 또는 데이터베이스에서. 사용중인 프레임 워크 버전을 제공 할 수 있습니까? 이는 특히 LINQ를 사용할 수있는 경우 최상의 솔루션을 제공하는 데 도움이됩니다. – Joshua

+0

Google이 목록에서이 기사를 처음 발견했습니다. http://support.microsoft.com/kb/319401 전체 소스를 사용할 수 있습니다. –

답변

0

사용중인 데이터 소스에 따라 다릅니다. 데이터 소스가 정렬을 허용하는 경우 여기에 설명 된 방법대로 설정할 수 있습니다 http://msdn.microsoft.com/en-us/library/sa88ktts.aspx. 그렇지 않으면 프로그래밍 방식으로 자신을 정렬 처리해야합니다. 일반적으로 이것은 자동 접근보다 훨씬 쉽습니다.

+0

ObjectDataSource에서 IEnumerable을 정렬 할 수 없습니다. 그것을 허용하도록 데이터 소스를 구성하는 방법이 있습니까? –

+0

시험해보십시오 - http://www.vinull.com/Post/2007/04/17/aspnet-sorting-a-gridview-with-custom-o.aspx –

3

데이터 원본 컨트롤을 사용하는 경우 코드의 한 줄을 작성하지 않고도 ListView 컨트롤에서 정렬을 구현할 수 있습니다.이 목록은 ListView 및 해당 데이터 소스 컨트롤에 의해 자동으로 처리됩니다. 물론보다 고급 시나리오에서는 수동으로 데이터를 정렬하거나 프로그래밍 방식으로 정렬해야 할 수도 있습니다.

다음 예제에서 ListView는 ProductName 및 UnitPrice로 정렬됩니다. ListView의 LayoutTemplate에 적절한 CommandName 및 CommandArgument 속성 값을 사용하여 두 개의 LinkButton을 추가하기 만하면됩니다. 사용자가 두 번 연속 링크 "가격 기준 정렬"을 클릭하면

<asp:ListView ID="ProductList" runat="server" DataSourceID="ProductDataSource"> 
    <LayoutTemplate> 
     <h3>Product Listing</h3> 
     <asp:LinkButton runat="server" ID="SortByName" CommandName="Sort" 
        CommandArgument="ProductName">Sort by Name</asp:LinkButton> 
     | <asp:LinkButton runat="server" ID="SortByPrice" CommandName="Sort" 
        CommandArgument="UnitPrice">Sort by Price</asp:LinkButton> 

     <blockquote> 
     <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder> 
     </blockquote> 
    </LayoutTemplate> 

    ... 
</asp:ListView> 

, 처음이 제품은 (저렴한에서 가장 비싼) 오름차순으로 정렬하지만, 두 번째 정렬 순서는 것이다됩니다 역.

+3

답안의 링크에서 중요한 부분을 입력하십시오. –