//后台代码:
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>