<%@ Import Namespace="System.Data" %><html>
<script language="C#" runat="server"> string SortField; ICollection CreateDataSource() {
DataTable dt = new DataTable();
DataRow dr; dt.Columns.Add(new DataColumn("整数值", typeof(Int32)));
dt.Columns.Add(new DataColumn("字符串值", typeof(string)));
dt.Columns.Add(new DataColumn("日期时间值", typeof(DateTime)));
dt.Columns.Add(new DataColumn("布尔值", typeof(bool)));
dt.Columns.Add(new DataColumn("货币值", typeof(double))); for (int i = 0; i < 9; i++) {
dr = dt.NewRow(); dr[0] = 9-i;
dr[1] = "项 " + i.ToString();
dr[2] = DateTime.Now;
dr[3] = (i % 2 != 0) ? true : false;
dr[4] = 1.23 * (i+1); dt.Rows.Add(dr);
} DataView dv = new DataView(dt);
dv.Sort = SortField;
return dv;
} void Page_Load(Object sender, EventArgs e) {
if (!IsPostBack) {
if (SortField == "") {
SortField = "IntegerValue";
}
BindGrid();
}
} void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) {
SortField = (string)e.SortExpression;
BindGrid();
} void BindGrid() {
MyDataGrid.DataSource = CreateDataSource();
MyDataGrid.DataBind();
}
</script><body> <h3><font face="宋体">DataGrid 中的基本排序</font></h3> <form runat=server> <ASP:DataGrid id="MyDataGrid" runat="server"
AllowSorting="true"
OnSortCommand="MyDataGrid_Sort"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="宋体"
Font-Size="8pt"
HeaderStyle-BackColor="#ccccff"
HeaderStyle-ForeColor="black"
/> </form></body>
</html>
<script language="C#" runat="server"> string SortField; ICollection CreateDataSource() {
DataTable dt = new DataTable();
DataRow dr; dt.Columns.Add(new DataColumn("整数值", typeof(Int32)));
dt.Columns.Add(new DataColumn("字符串值", typeof(string)));
dt.Columns.Add(new DataColumn("日期时间值", typeof(DateTime)));
dt.Columns.Add(new DataColumn("布尔值", typeof(bool)));
dt.Columns.Add(new DataColumn("货币值", typeof(double))); for (int i = 0; i < 9; i++) {
dr = dt.NewRow(); dr[0] = 9-i;
dr[1] = "项 " + i.ToString();
dr[2] = DateTime.Now;
dr[3] = (i % 2 != 0) ? true : false;
dr[4] = 1.23 * (i+1); dt.Rows.Add(dr);
} DataView dv = new DataView(dt);
dv.Sort = SortField;
return dv;
} void Page_Load(Object sender, EventArgs e) {
if (!IsPostBack) {
if (SortField == "") {
SortField = "IntegerValue";
}
BindGrid();
}
} void MyDataGrid_Sort(Object sender, DataGridSortCommandEventArgs e) {
SortField = (string)e.SortExpression;
BindGrid();
} void BindGrid() {
MyDataGrid.DataSource = CreateDataSource();
MyDataGrid.DataBind();
}
</script><body> <h3><font face="宋体">DataGrid 中的基本排序</font></h3> <form runat=server> <ASP:DataGrid id="MyDataGrid" runat="server"
AllowSorting="true"
OnSortCommand="MyDataGrid_Sort"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="宋体"
Font-Size="8pt"
HeaderStyle-BackColor="#ccccff"
HeaderStyle-ForeColor="black"
/> </form></body>
</html>
---------------------------------------------------当然不行啦,排序的代码还是要写的
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>AccountsList</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body background="../image/bg.gif">
<form id="AccountsList" method="post" runat="server">
<FONT face="宋体">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" cellSpacing="1"
cellPadding="1" width="100%" border="0">
<TR>
<TD><asp:datagrid id="dgdQuery" runat="server" Width="100%" AutoGenerateColumns="False" AllowSorting="True"
PageSize="20" AllowPaging="True" OnSortCommand="dgdQuery_SortCommand" OnPageIndexChanged="dgdQuery_PageIndexChanged"
BorderColor="White" BorderStyle="Ridge" BorderWidth="2px" BackColor="White" CellPadding="1"
GridLines="None" CellSpacing="1">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#9471DE"></SelectedItemStyle>
<ItemStyle Font-Size="10pt" HorizontalAlign="Center" ForeColor="Black" BackColor="#DEDFDE"></ItemStyle>
<HeaderStyle Font-Size="10pt" Font-Bold="True" HorizontalAlign="Center" ForeColor="#E7E7FF" BackColor="#4A3C8C"></HeaderStyle>
<FooterStyle Wrap="False" ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderText="Select">
<ItemTemplate>
<asp:CheckBox id="MyCheckBox" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="UserID" HeaderText="UserID" HeaderStyle-HorizontalAlign="Center">
<HeaderStyle></HeaderStyle>
<ItemTemplate>
<asp:Label id=lblUserID runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "UserID") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False" SortExpression="Password" HeaderText="Password">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "Password") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem, "Password") %>' ID="txtAdminPassword" Runat=server NAME="Textbox1">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="FirstName" HeaderText="FirstName">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "FirstName") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem, "FirstName") %>' ID="txtAdminFirstName" Runat=server NAME="Textbox1">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="LastName" HeaderText="LastName">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "LastName") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem, "LastName") %>' ID="txtAdminLastName" Runat=server NAME="Textbox1">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="Gender" HeaderText="Gender">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "Gender") %>' runat="server" ID="Label4"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem, "Gender") %>' ID="txtAdminEmail" Runat=server NAME="Textbox1">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="Country" HeaderText="Country">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "Country") %>' runat="server" ID="Label2"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem, "Country") %>' ID="Textbox1" Runat=server NAME="Textbox1">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="RemainingPoints" HeaderText="Remaining Points">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "RemainingPoints") %>' runat="server" ID="Label3"/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem, "RemainingPoints") %>' ID="Textbox2" Runat=server NAME="Textbox1">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="IsLocked" HeaderText="AccountLocked">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "AccountLocked") %>' runat="server" ID="Label1"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="RegisterTime" HeaderText="RegisterTime">
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "RegisterTime") %>' runat="server" ID="Label5"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:HyperLinkColumn Text="Details" DataNavigateUrlField="URLField"></asp:HyperLinkColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="Black" BackColor="#C6C3C6" Mode="NumericPages"></PagerStyle>
</asp:datagrid></TD>
</TR>
<TR>
<TD align="right"><FONT face="宋体">
<asp:Button id="btnSearch" runat="server" Text="Re-Search>>" Visible="False"></asp:Button> </FONT></TD>
</TR>
<TR>
<TD><FONT face="宋体"></FONT></TD>
</TR>
</TABLE>
</FONT>
</form>
</body>
</HTML>
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace MovieAdmin.AccountMangement
{
/// <summary>
/// AccountsList 的摘要说明。
/// </summary>
public class AccountsList : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgdQuery;
protected System.Web.UI.WebControls.Button btnSearch; Classes.DBOperate DB=new Classes.DBOperate();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
if(Request.QueryString["IsRedictFromQuery"]!=null)
{
Session.Remove("IsRedictFromQuery");
btnSearch.Visible=true;
}
else
{
Session["QueryString"]="Select UserID,Password,FirstName,LastName,Email,Address1,Address2,City,State,Zip,DayPhone,RegisterTime,EvePhone,Birthday,"+
"T_User.GenderID as GenderID,T_Country.CountryName as Country,T_Country.CountryID as CountryID,RemainingPoints,"+
"case T_User.GenderID when 0 then 'Male' else 'Female' end as Gender,case T_User.AccountLocked when 0 then 'false' else 'true' end "+
"as AccountLocked,'AccountInfoShow.aspx?UserID='+T_User.UserID as URLField from T_User,T_Country where T_User.CountryID=T_Country.CountryID";
}
Session["SortField"]="UserID";
Session["SortOrder"]=" asc";
BindGrid(Session["QueryString"].ToString(),Session["SortField"].ToString());
}
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
this.dgdQuery.SelectedIndexChanged += new System.EventHandler(this.dgdQuery_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void btnAdd_Click(object sender, System.EventArgs e)
{
}
private void BindGrid(string QueryString,string SortField)
{
DataSet DS=DB.Query(QueryString);
DataView DW=DS.Tables[0].DefaultView;
DW.Sort=SortField;
dgdQuery.DataSource=DW;
dgdQuery.DataBind();
} protected void dgdQuery_SortCommand(Object sender, DataGridSortCommandEventArgs e)
{
if(Session["SortField"].ToString()==e.SortExpression&Session["SortOrder"].ToString()!=" desc")
{
Session["SortOrder"]=" desc";
BindGrid(Session["QueryString"].ToString(),e.SortExpression+" desc");
}
else if(Session["SortField"].ToString()==e.SortExpression&Session["SortOrder"].ToString()==" desc")
{
Session["SortOrder"]=" asc";
BindGrid(Session["QueryString"].ToString(),e.SortExpression);
}
else
{
Session["SortOrder"]=" asc";
Session["SortField"]=e.SortExpression;
BindGrid(Session["QueryString"].ToString(),e.SortExpression);
} }
protected void dgdQuery_PageIndexChanged(Object sender, DataGridPageChangedEventArgs e)
{
dgdQuery.CurrentPageIndex=e.NewPageIndex;
BindGrid(Session["QueryString"].ToString(),Session["SortField"].ToString()+Session["SortOrder"].ToString()); } private void btnSearch_Click(object sender, System.EventArgs e)
{
Response.Redirect("SearchUsers.aspx");
} private void dgdQuery_SelectedIndexChanged(object sender, System.EventArgs e)
{
}
}
}
Private Sub DataGrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles DataGrid1.SortCommand
Dim SortField As String
SortField = e.SortExpression.ToString Me.DataGrid1.Attributes("SortExpression") = SortField '设置所要排序的字段
If Me.DataGrid1.Attributes("SortDirection") = "ASC" Then '如果原先是升序,则将当前设为降序,否则反之
Me.DataGrid1.Attributes("SortDirection") = "DESC"
Else
Me.DataGrid1.Attributes("SortDirection") = "ASC"
End If MySort(SortField) '调用排序函数
End Sub Private Sub MySort(ByVal SortField As String)
'进行排序
Dim thisSortField As String thisSortField = Me.DataGrid1.Attributes("SortExpression")
thisMode = Me.DataGrid1.Attributes("SortDirection") Dim dv As New DataView
Dim ds As New DataSet Dim ad As New SqlDataAdapter("select * from 表名", Me.SqlConnection1) ad.Fill(ds)
dv = ds.Tables(0).DefaultView dv.Sort = thisSortField + " " + thisMode
Me.DataGrid1.DataSource = dv
Me.DataGrid1.DataBind()
End Sub