我有一个绑定到DataTable的gridview。当我尝试对gridview进行排序时,它会变成空白。如何启用对此gridview的排序?
我之前已经问过这个问题,但我正在寻找的是解释如何做到这一点。也许用一个简单的例子。
我已经读过我需要在on_sorting和/或on_sorted事件中加入一些代码,但我不明白需要去哪里。
同样,我想了解实现这一目标的方法,我不仅仅想要一个巨大的代码块。
好的,这就是我现在所拥有的,但仍然无效:
<asp:GridView ID="gridResults" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="Horizontal" AllowSorting="True" AllowPaging="True"
EmptyDataText="No Tracking Information Found for the given criteria."
PageSize="15" onsorted="gridResults_Sorted" AutoGenerateColumns="False"
EnableSortingAndPagingCallbacks="True">
<RowStyle BackColor="#E3EAEB" />
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
然后在代码背后:
//From search method
gridResults.Columns.Clear();
foreach (DataColumn col in currentResults.Columns)
{
String fieldName = col.ColumnName;
BoundField field = new BoundField();
field.DataField = fieldName;
field.SortExpression = fieldName;
field.HeaderText = fieldName;
gridResults.Columns.Add(field);
}
gridResults.DataSource = currentResults;
gridResults.DataBind();
gridResults.AllowSorting = true;
任何人都能看到我仍然缺少的东西吗?结果显示,但没有排序或分页工作。
答案 0 :(得分:1)
请查看ASP.NET 2.0的GridView示例:Paging and Sorting the GridView's Data
答案 1 :(得分:1)
您可以使用DataTable对GridView进行排序。您需要做的就是确保Enable Sorting = true,并提供您希望在SortExpression中排序的列名。
这是允许对其进行排序所需要做的事情:
<asp:BoundField HeaderText="Product"
DataField="ProductName" SortExpression="ProductName">
</asp:BoundField>
您始终需要设置SortExpression,否则您将无法对列进行排序