将gridview绑定到c#.net中的数据表

时间:2010-09-28 15:22:56

标签: c# asp.net

我有一个绑定到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;

任何人都能看到我仍然缺少的东西吗?结果显示,但没有排序或分页工作。

2 个答案:

答案 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,否则您将无法对列进行排序