//后台代码:
protected void CustomersGridView_RowCreated(Object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { int sortColumnIndex = GetSortColumnIndex();
if (sortColumnIndex != -1) { AddSortImage(sortColumnIndex, e.Row); } } }
int GetSortColumnIndex() {
foreach (DataControlField field in CustomersGridView.Columns) { if (field.SortExpression == CustomersGridView.SortExpression) { return CustomersGridView.Columns.IndexOf(field); } }
return -1; }
void AddSortImage(int columnIndex, GridViewRow headerRow) { Image sortImage = new Image(); if (CustomersGridView.SortDirection == SortDirection.Ascending) { sortImage.ImageUrl = "~/Images/03.jpg"; sortImage.AlternateText = "Ascending Order"; } else { sortImage.ImageUrl = "~/Images/05.jpg"; sortImage.AlternateText = "Descending Order"; }
headerRow.Cells[columnIndex].Controls.Add(sortImage);
}
//前台:
<form id="Form1" runat="server"> <h3>GridView AllowSorting Example</h3>
<asp:gridview id="CustomersGridView" datasourceid="CustomersSource" autogeneratecolumns="False" emptydatatext="No data available." allowsorting="True" onrowcreated="CustomersGridView_RowCreated" runat="server"> <Columns> <asp:BoundField DataField="GoodsID" HeaderText="商品ID" ReadOnly="True" SortExpression="GoodsID" /> <asp:BoundField DataField="GoodsName" HeaderText="商品名称" SortExpression="GoodsName" /> <asp:BoundField DataField="SellPrice" HeaderText="销售价格" SortExpression="SellPrice" /> </Columns> <PagerTemplate> <asp:Image ID="Image1" runat="server" /> </PagerTemplate> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression_r to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="CustomersSource" selectcommand="SELECT [GoodsID], [GoodsName], [SellPrice] FROM [tb_Goods]" connectionstring="<%$ ConnectionStrings:db_GoodsManageConnectionString %>" runat="server"/> </form>
