http://topic.csdn.net/t/20061218/10/5237620.html
http://social.microsoft.com/forums/zh-CN/295/thread/9d3e2371-45bd-49e6-b78e-633fc95422f6/
那些属性都是针对数据源控件的,
如果自己排序,需要自己处理数据的,下面是一个可以直接运行的例子
<%@ Page Language="C#" EnableViewState="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
System.Data.DataTable CreateDataSourceByXianhuiMeng()
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));
for (int i = 0; i < 8; i++)
{
System.Random rd = new System.Random(Environment.TickCount * i); ;
dr = dt.NewRow();
dr[0] = "班级" + i.ToString();
dr[1] = "【孟子E章】" + i.ToString();
dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
dt.Rows.Add(dr);
}
return dt;
}
string sortType = String.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if (sortType == "DESC")
{
ViewState["sortType"] = "ASC";
}
else
{
ViewState["sortType"] = "DESC";
}
if (!Page.IsPostBack)
{
this.gvShop.DataSource = CreateDataSourceByXianhuiMeng();
this.gvShop.DataBind();
}
}
public void GridViewDataBind(String sortField)
{
System.Data.DataView dt = CreateDataSourceByXianhuiMeng().DefaultView;
dt.Sort = sortField;
this.gvShop.DataSource = dt;
this.gvShop.DataBind();
}
protected void b_Click(object sender, EventArgs e)
{
sortType = Convert.ToString(ViewState["sortType"]);
LinkButton link = sender as LinkButton;
GridViewDataBind(link.CommandArgument + " " + sortType);
}
protected void gvShop_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
sortType = Convert.ToString(ViewState["sortType"]);
LinkButton link = e.Row.FindControl("b") as LinkButton;
if (sortType == "DESC")
{
link.Parent.Controls.Add(new LiteralControl("↓"));
}
else
{
link.Parent.Controls.Add(new LiteralControl("↑"));
}
}
}
</script>
<body>
<form id="form1" runat="server">
<asp:GridView ID="gvShop" runat="server" AutoGenerateColumns="false" OnRowCreated="gvShop_RowCreated">
<Columns>
<asp:TemplateField ShowHeader="true">
<HeaderTemplate>
<asp:LinkButton ID="b" runat="server" Text="语文" CommandArgument="语文" OnClick="b_Click"></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<p>
<%#Eval("语文")%></p>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
浙公网安备 33010602011771号