我一直在寻找一些关于如何使用自定义生成的datareader对gridview进行排序的示例。
以下是我如何使用datareader绑定gridview。
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'gridBookings'触发了未处理的事件排序。
有什么想法吗?
PS。在侧面问题上,当任何数据没有与它绑定时,如何用空行显示空白网格视图?
答案 0 :(得分:1)
您正在订阅“已排序”活动...但您还需要订阅“排序”事件。你应该真的升级到更新版本的ASP.NET:)
答案 1 :(得分:1)
单击对列进行排序的超链接时会发生Gridview的排序事件,但之前 GridView控件会处理排序操作。单击排序列的超链接时会发生排序事件,但 后,GridView控件会处理排序操作。通常我们使用gridviews排序事件来排序gridview中的项目。查看this链接,了解在gridview
中对项目进行排序的详细示例答案 2 :(得分:0)
<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
}