使用生成的数据阅读器对Gridview进行排序和分页

本文关键字:Gridview 排序 分页 数据 | 更新日期: 2023-09-27 18:07:18

我一直在寻找一些关于如何使用自定义生成的数据阅读器对gridview进行排序的示例。

我是这样绑定gridview和datareader的

        sqlConn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        gridBookings.DataSource = reader;
        gridBookings.DataBind();
        sqlConn.Close();

这是gridview的排序事件处理程序

protected void gridBookings_Sorted(object sender, EventArgs e)
{
    gridBookings.DataBind();
}

这是gridview标记。

<asp:GridView ID="gridBookings" runat="server"  CssClass="zebra-striped" 
        EmptyDataText="No data available, sir" ShowHeaderWhenEmpty="True" 
        ClientIDMode="Static" AutoGenerateColumns="False" AllowSorting="True" 
        onsorted="gridBookings_Sorted">
<columns>
<asp:BoundField HeaderText="BookingID" DataField="booking_id" SortExpression="booking_id"/><asp:BoundField HeaderText="CustomerID" DataField="cus_id" SortExpression="cus_id" />
<!--More bound fields-->
</columns>
</asp:GridView>

这是当我点击标题列中的链接按钮时得到的错误。

GridView ' gridbooking '触发了未处理的事件排序。

任何想法?

p。在侧面的问题,我怎么能显示空白的网格视图与空行时,任何数据没有绑定到它?

使用生成的数据阅读器对Gridview进行排序和分页

您正在订阅"Sorted"事件…但您还需要订阅"排序"事件。你真的应该升级到新版本的ASP。净:)

Gridview的排序事件发生在单击排序列的超链接时,但是在Gridview控件处理排序操作之前。Sorted事件发生在单击排序列的超链接时,但是之后的 GridView控件处理排序操作。通常我们使用gridview排序事件来对gridview中的项进行排序。点击此链接查看gridview

中排序项的详细示例
<asp:GridView ID="gridBookings" runat="server"  CssClass="zebra-striped" 
    EmptyDataText="No data available, sir" ShowHeaderWhenEmpty="True" 
    ClientIDMode="Static" AutoGenerateColumns="False" AllowSorting="True" 
    onsorted="gridBookings_Sorted"
    onsorting="gridBookings_Sorting">
protected void gridBookings_Sorting(object sender, GridViewSortEventArgs e)
{
    //handled onsorting
}