사용자 지정 SqlDataSource를 사용할 때 사용자가 데이터 열을 정렬 할 수 있도록 GridView를 가져올 수 없습니다. 내가 포함 된 열이없는 (동적으로 생성의 SqlDataSource를 부착 숨김 코드에서사용자 정의 데이터 소스를 사용하는 경우 ASP.NET GridView에서 열을 정렬하는 방법은 무엇입니까?
<asp:GridView id="grid" runat="server" AutoGenerateColumns="False" AllowSorting="True">
</asp:GridView>
:
나는 a를 HTML에서 그것의 ASP 참조의 코드가 최소 인의 GridView이 항상 동일하므로 런타임에 작성되는 SQL이 작성됩니다). 예를 들어 :
나는 다음의 gridview ... 상기
grid.DataSource = dataSource;
grid.DataKeyNames = mylistOfKeys;
grid.DataBind();
를 열 ...
BoundField column = new BoundField();
column.DataField = columnName;
column.HeaderText = "Heading";
column.SortExpression = columnName;
grid.Columns.Add(column);
데이터 소스 ...
SqlDataSource dataSource = new SqlDataSource(
"System.Data.SqlClient",
connectionString,
generatedSelectCommand);
을 설정 사용자가 열 데이터를 정렬 할 때 열 머리글을 클릭 할 때 아무 일도 일어나지 않습니다. 내가 누락 된 어떤 아이디어라도?
나에게 지저분 해 보이는 것처럼 도움이 될만한 방법이 있다면!
현재 정렬 작업을 처리하지 않고 기본 동작으로 남겨두고 있습니다. 그러나 Sorting 이벤트 내에서 SortExpression 및 SortDirection이 의미가 있으며 공백이 아닌지 확인했습니다. 데이터 소스가 포스트 백의 격자에 다시 바인딩됩니다. –
Keith가 언급 한대로 이벤트를 처리해야합니다. 표준 SqlDataSource 컨트롤을 사용하면 자동으로 수행되지만이 경우 직접 처리해야합니다. – Biri