using System; 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; using System.Data.SqlClient; namespace NetTest.DataGridExample { /// <summary> /// DataGridColor 的摘要说明。 /// </summary> public class DataGridColor : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid dbOrders; private string strConn=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString(); private void Page_Load(object sender, System.EventArgs e) { if(!IsPostBack) { ViewState["SortExpression"]=""; ViewState["sort"]="desc"; } BindData(); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.dbOrders.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dbOrders_ItemCreated); this.dbOrders.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dbOrders_PageIndexChanged); this.dbOrders.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dbOrders_SortCommand); this.dbOrders.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dbOrders_ItemDataBound); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void BindData() { SqlConnection Conn=new SqlConnection(strConn); SqlCommand Cmd=new SqlCommand("select * from Orders",Conn); SqlDataAdapter da=new SqlDataAdapter(); da.SelectCommand=Cmd; DataSet ds=new DataSet(); Conn.Open(); da.Fill(ds); Conn.Close(); DataTable dt=ds.Tables[0]; if(ViewState["SortExpression"].ToString()!="") { dt.DefaultView.Sort=ViewState["SortExpression"].ToString()+" "+ViewState["sort"].ToString(); } dbOrders.DataSource=dt; dbOrders.DataBind(); } private void dbOrders_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) { string sort=string.Empty; if(ViewState["SortExpression"].ToString()==e.SortExpression.ToString()) { if(ViewState["sort"].ToString()=="asc") { sort="desc"; } else { sort="asc"; } } else { if(ViewState["sort"].ToString()=="asc") { sort="desc"; } else { sort="asc"; } } ViewState["sort"]=sort; ViewState["SortExpression"]=e.SortExpression; BindData(); } private void dbOrders_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if (e.Item.ItemType==ListItemType.Header) { //排序 foreach(TableCell c in e.Item.Cells) { if (c.Controls.Count >0 && c.Controls[0].GetType().ToString()=="System.Web.UI.WebControls.DataGridLinkButton") { if (((LinkButton)c.Controls[0]).Text==(string)ViewState["SortExpression"]) { Label l=new Label(); l.Font.Name="Webdings"; if ((string)ViewState["sort"]=="asc") l.Text="5"; else l.Text="6"; c.Controls.Add(l); } } } } } private void dbOrders_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { dbOrders.CurrentPageIndex=e.NewPageIndex; DataBind(); } private void dbOrders_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) { e.Item.Attributes.Add("onmouseover","tdOver(this)"); e.Item.Attributes.Add("onmouseout","tdOut(this)"); e.Item.Attributes.Add("onclick","tdColor(this)"); e.Item.Attributes.Add("ondblclick","tdColorDbl(this)"); } } } } |