2009-04-05 3 views
0

왜 내 gridview의 열을 클릭하여 정렬 방향을 전환하지 않습니까?왜 내 gridview의 열 클릭 정렬 방향을 전환하지 않습니다?

처음 클릭 할 때만 행을 정렬하는 것처럼 보입니다. 다른 모든 클릭은 정렬 방향의 변경없이 페이지를 새로 고칩니다.

btw 나는 정렬 할 SQL 쿼리를 업데이트하기 위해 호출하는 OnSorting 메서드가 있습니다.

내 코드 :

<asp:GridView ID="gvReport" runat="server" AutoGenerateColumns="False" 
    AllowSorting="True" 
    AllowPaging="True" 
    OnSorting="Report_OnSorting"> 



public void Report_OnSorting(object sender, GridViewSortEventArgs e) 
    { 

} 
+0

.aspx 페이지 및 다른 코드 숨김에서 GridView 코드를 게시하면 문제를 쉽게 파악할 수 있습니다. 이 문제의 가능한 원인은 다양합니다. – DOK

답변

0

난 당신이 this similar question에 많은 답변에서 답변을 찾을 수 있습니다 생각합니다.

가장 간단한 버전을 사용하면 ASP.Net이 전체 정렬 작업을 처리 할 것이라고 생각합니다.

이 코드는 SqlDataSource example에서 AllowSorting = "true"로 설정하고 BoundColumns에 SortExpressions를 제공합니다. OnSorting 이벤트가 연결되어 있고 다른 코드는 없습니다. 나는 ASC와 DESC 사이의 전환을 관리한다고 생각합니다. 이 경우, 두려운 SqlDataSource를 사용하여 DataReader가 아니라 DataSet을 사용해야한다고 생각합니다.

<%@ Page Language="C#" %> 
<html> 
<head id="Head1" runat="server"> 
    <title>Sorting Data Using GridView</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:GridView ID="GridView1" AllowSorting="true" runat="server" DataSourceID="SqlDataSource1" 
     AutoGenerateColumns="False"> 
     <Columns> 
     <asp:BoundField HeaderText="ID" DataField="au_id" SortExpression="au_id" /> 
     <asp:BoundField HeaderText="Last Name" DataField="au_lname" SortExpression="au_lname" /> 
     <asp:BoundField HeaderText="First Name" DataField="au_fname" SortExpression="au_fname" /> 
     <asp:BoundField HeaderText="Phone" DataField="phone" SortExpression="phone" /> 
     <asp:BoundField HeaderText="Address" DataField="address" SortExpression="address" /> 
     <asp:BoundField HeaderText="City" DataField="city" SortExpression="city" /> 
     <asp:BoundField HeaderText="State" DataField="state" SortExpression="state" /> 
     <asp:BoundField HeaderText="Zip Code" DataField="zip" SortExpression="zip" /> 
     <asp:CheckBoxField HeaderText="Contract" SortExpression="contract" DataField="contract" /> 
     </Columns> 
    </asp:GridView> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     SelectCommand="SELECT [au_id], [au_lname], [au_fname], [phone], [address], [city], [state], [zip], [contract] FROM [authors]" 
     ConnectionString="<%$ ConnectionStrings:Pubs %>" /> 
    </form> 
</body> 
</html> 
+1

즉, 자동으로 수행되지 않습니다 ... – Blankman

+0

나는 그것이 올바르게 설정하면 자동으로 수행 할 수 있다고 생각합니다. 한 가지는 OnSorting 이벤트를 설정하거나 코드를 추가해야한다고 생각하지 않습니다. 하지만 SortExpressions가 정의 된 BoundColumns를 추가해야한다고 생각합니다. 그런 다음 ASC와 DESC 사이에서 토글을 수행해야합니다. – DOK