2011-08-31 58 views
2

我一直在尋找一些關於如何使用自定義生成的數據讀取器排序gridview的例子。使用生成的數據讀取器排序和分頁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'gridBookings'觸發事件排序不處理。

任何想法?

PS。在側面的問題,當沒有任何數據綁定它時,如何顯示空行的空行。

回答

1

您正在訂閱「排序」事件...但您還需要訂閱「排序」事件。你真的應該升級到ASP.NET的新版本:)

1

GridView的排序事件發生時的超級鏈接排序列被點擊,但以前 GridView控件處理排序操作。 Sorted當點擊排序列的超鏈接時發生事件,但在之後的GridView控件處理排序操作。通常我們使用gridviews排序事件來在gridview中排序項目。查看this鏈接查看gridview中排序項的詳細示例

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 
} 
相關問題