虽然是BETA 1的,但原理其实和。NET 1。1的差不多,下面的例子讲了如何在排序时,在
headertemplate中加一张UP.GIF和DOWN.GIF(就是升序,倒序的示意图)
%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script runat="server">
void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row != null && e.Row.RowType == DataControlRowType.Header)
{
foreach (TableCell cell in e.Row.Cells)
{
if (cell.HasControls())
{
LinkButton button = cell.Controls[0] as LinkButton;
if (button != null)
{
Image image = new Image();
image.ImageUrl = "default.gif";
if (GridView1.SortExpression == button.CommandArgument)
{
if (GridView1.SortDirection == SortDirection.Ascending)
image.ImageUrl = "up.gif";
else
image.ImageUrl = "down..gif";
}
cell.Controls.Add(image);
}
}
}
}
}
</script>
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1" AllowSorting="True" AutoGenerateColumns="False" OnRowCreated="GridView1_RowCreated">
<Columns>
<asp:BoundField HeaderText="customerid" DataField="CustomerID"></asp:BoundField>
<asp:BoundField HeaderText="companyname" DataField="CompanyName" SortExpression="CompanyName"></asp:BoundField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT customerid,companyname FROM customers " ConnectionString="server=localhost;uid=sa;password=XXX;database=northwind">
</asp:SqlDataSource>
</div>
</form>
</body>
</html>