初用DataGrid控件,想实现点击表头来对数据进行双向排序,费了老半天工夫才摸索出如下的东东来,请看效果图:   
    
 
 
 <asp:DataGrid id="faggruppeGrid" runat="server" BorderColor="Black" BorderWidth="1px" CellPadding="3"
<asp:DataGrid id="faggruppeGrid" runat="server" BorderColor="Black" BorderWidth="1px" CellPadding="3"
 Width="300px" HeaderStyle-BackColor="#7f9db9" HorizontalAlign="Center" AutoGenerateColumns="False"
    Width="300px" HeaderStyle-BackColor="#7f9db9" HorizontalAlign="Center" AutoGenerateColumns="False"
 AllowSorting="True">
    AllowSorting="True">
 <HeaderStyle BackColor="#7F9DB9"></HeaderStyle>
    <HeaderStyle BackColor="#7F9DB9"></HeaderStyle>
 <Columns>
    <Columns>
 <!-- 第一列 -->
    <!-- 第一列 -->
 <asp:TemplateColumn>
     <asp:TemplateColumn>
 <HeaderTemplate>
      <HeaderTemplate>
 <asp:LinkButton id="lbFag" runat="server" CommandName="sort" CommandArgument="Fag" CausesValidation="False">Fag</asp:LinkButton>
       <asp:LinkButton id="lbFag" runat="server" CommandName="sort" CommandArgument="Fag" CausesValidation="False">Fag</asp:LinkButton>
 <asp:Image Runat="server" ID="ImgFag" ImageUrl="../images/Up.gif" Visible="False" />    <!--箭头图标-->
       <asp:Image Runat="server" ID="ImgFag" ImageUrl="../images/Up.gif" Visible="False" />    <!--箭头图标-->
 </HeaderTemplate>
      </HeaderTemplate>
 <ItemTemplate>
      <ItemTemplate>
 <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Fag") %>' ID="Label1"/>
       <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Fag") %>' ID="Label1"/>
 </ItemTemplate>
      </ItemTemplate>
 </asp:TemplateColumn>
     </asp:TemplateColumn>
 <!-- 第二列 -->
    <!-- 第二列 -->
 <asp:TemplateColumn>
     <asp:TemplateColumn>
 <HeaderTemplate>
      <HeaderTemplate>
 <asp:LinkButton id="lbNavn" runat="server" CommandName="sort" CommandArgument="Navn" CausesValidation="False">Navn</asp:LinkButton>
       <asp:LinkButton id="lbNavn" runat="server" CommandName="sort" CommandArgument="Navn" CausesValidation="False">Navn</asp:LinkButton>
 <asp:Image Runat="server" ID="ImgNavn" ImageUrl="../images/Up.gif" Visible="False" />
       <asp:Image Runat="server" ID="ImgNavn" ImageUrl="../images/Up.gif" Visible="False" />
 </HeaderTemplate>
      </HeaderTemplate>
 <ItemTemplate>
      <ItemTemplate>
 <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Navn") %>' ID="Label2"/>
       <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Navn") %>' ID="Label2"/>
 </ItemTemplate>
      </ItemTemplate>
 </asp:TemplateColumn>
     </asp:TemplateColumn>
 <!-- 第三列 -->
    <!-- 第三列 -->
 <asp:HyperLinkColumn DataNavigateUrlField="Fag" DataNavigateUrlFormatString="JavaScript:ReturnFagnummer('{0}');" Text="Indsæt" />
     <asp:HyperLinkColumn DataNavigateUrlField="Fag" DataNavigateUrlFormatString="JavaScript:ReturnFagnummer('{0}');" Text="Indsæt" />
 </Columns>
    </Columns>
 </asp:DataGrid>
   </asp:DataGrid>
 
 using System;
using System;
 using System.Collections;
using System.Collections;
 using System.ComponentModel;
using System.ComponentModel;
 using System.Data;
using System.Data;
 using System.Drawing;
using System.Drawing;
 using System.Web;
using System.Web;
 using System.Web.SessionState;
using System.Web.SessionState;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 using Pensam.Praesentation.BMSWIService;
using Pensam.Praesentation.BMSWIService;
 using Pensam.GenNS;
using Pensam.GenNS;
 using Microsoft.ApplicationBlocks.ExceptionManagement;
using Microsoft.ApplicationBlocks.ExceptionManagement;

 namespace Pensam.Praesentation.Medarbejder
namespace Pensam.Praesentation.Medarbejder
 {
{
 /// <summary>
    /// <summary>
 /// Summary description for FaggruppeListe.
    /// Summary description for FaggruppeListe.
 /// </summary>
    /// </summary>
 public class FaggruppeListe : BaseWebPage
    public class FaggruppeListe : BaseWebPage
 {
    {
 #region member variables
        #region member variables
 protected System.Web.UI.WebControls.DataGrid faggruppeGrid;
        protected System.Web.UI.WebControls.DataGrid faggruppeGrid;
 protected System.Web.UI.WebControls.Image ImgArrow = null;
        protected System.Web.UI.WebControls.Image ImgArrow = null;
 private DataTable dt = null;
        private DataTable dt = null;
 #endregion
        #endregion

 private void Page_Load(object sender, System.EventArgs e)
        private void Page_Load(object sender, System.EventArgs e)
 {
        {
 VisFagGrps();
            VisFagGrps();
 if(!this.IsPostBack) BindGrid();
            if(!this.IsPostBack) BindGrid();
 //if(this.IsPostBack) Response.Write("post back");
            //if(this.IsPostBack) Response.Write("post back");
 }
        }

 #region Web Form Designer generated code
        #region Web Form Designer generated code
 override protected void OnInit(EventArgs e)
        override protected void OnInit(EventArgs e)
 {
        {
 //
            //
 // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
 //
            //
 InitializeComponent();
            InitializeComponent();
 base.OnInit(e);
            base.OnInit(e);
 }
        }
 
        
 /// <summary>
        /// <summary>
 /// Required method for Designer support - do not modify
        /// Required method for Designer support - do not modify
 /// the contents of this method with the code editor.
        /// the contents of this method with the code editor.
 /// </summary>
        /// </summary>
 private void InitializeComponent()
        private void InitializeComponent()
 {
        {    
 this.faggruppeGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.faggruppeGrid_SortCommand);
            this.faggruppeGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.faggruppeGrid_SortCommand);
 this.faggruppeGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.faggruppeGrid_ItemDataBound);
            this.faggruppeGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.faggruppeGrid_ItemDataBound);
 this.Load += new System.EventHandler(this.Page_Load);
            this.Load += new System.EventHandler(this.Page_Load);

 }
        }
 #endregion
        #endregion

 #region private functions
        #region private functions
 //生成绑定数据
        //生成绑定数据
 private void VisFagGrps()
        private void VisFagGrps()
 {
        {
 /*
            /*
 using(PSLog logger = new PSLog())
            using(PSLog logger = new PSLog())
 {
            {
 try
                try
 {
                {
 if(this.ServiceDelegate == null) return;
                    if(this.ServiceDelegate == null) return;
 ArrayList list1 = new ArrayList(this.ServiceDelegate.GetFaggruppeListe());
                    ArrayList list1 = new ArrayList(this.ServiceDelegate.GetFaggruppeListe());
 if(list1 == null)
                    if(list1 == null)
 {
                    {
 this.VisErrorMessage("Get professional category list failed.");
                        this.VisErrorMessage("Get professional category list failed.");
 }
                    }
 }
                }
 catch(Exception ex)
                catch(Exception ex)
 {
                {
 VisErrorMessage(ex.Message);
                    VisErrorMessage(ex.Message);
 ExceptionManager.Publish(ex);
                    ExceptionManager.Publish(ex);
 }
                }
 }
            }
 */
            */
 
            

 dt = new DataTable();
            dt = new DataTable();
 DataRow dr;
            DataRow dr;

 dt.Columns.Add(new DataColumn("Fag", typeof(string)));
            dt.Columns.Add(new DataColumn("Fag", typeof(string)));
 dt.Columns.Add(new DataColumn("Navn", typeof(string)));
            dt.Columns.Add(new DataColumn("Navn", typeof(string)));

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag01000001";
            dr["Fag"] = "Fag01000001";
 dr["Navn"] = "Fag0101";
            dr["Navn"] = "Fag0101";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag01000002";
            dr["Fag"] = "Fag01000002";
 dr["Navn"] = "Fag0102";
            dr["Navn"] = "Fag0102";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag01000003";
            dr["Fag"] = "Fag01000003";
 dr["Navn"] = "Fag0103";
            dr["Navn"] = "Fag0103";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag02000001";
            dr["Fag"] = "Fag02000001";
 dr["Navn"] = "Fag0201";
            dr["Navn"] = "Fag0201";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag02000002";
            dr["Fag"] = "Fag02000002";
 dr["Navn"] = "Fag0202";
            dr["Navn"] = "Fag0202";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag02000003";
            dr["Fag"] = "Fag02000003";
 dr["Navn"] = "Fag0203";
            dr["Navn"] = "Fag0203";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag03000001";
            dr["Fag"] = "Fag03000001";
 dr["Navn"] = "Fag0301";
            dr["Navn"] = "Fag0301";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag03000002";
            dr["Fag"] = "Fag03000002";
 dr["Navn"] = "Fag0302";
            dr["Navn"] = "Fag0302";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);

 dr = dt.NewRow();
            dr = dt.NewRow();
 dr["Fag"] = "Fag03000003";
            dr["Fag"] = "Fag03000003";
 dr["Navn"] = "Fag0303";
            dr["Navn"] = "Fag0303";
 dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 }
        }

 private void faggruppeGrid_SortCommand(Object sender, DataGridSortCommandEventArgs e)
        private void faggruppeGrid_SortCommand(Object sender, DataGridSortCommandEventArgs e) 
 {
        {
 System.Web.UI.Control control = ((DataGridItem)e.CommandSource).FindControl("ImgArrow");
            System.Web.UI.Control control = ((DataGridItem)e.CommandSource).FindControl("ImgArrow");
 //Response.Write(control.ToString());
            //Response.Write(control.ToString());
 ImgArrow = (System.Web.UI.WebControls.Image)control;
            ImgArrow = (System.Web.UI.WebControls.Image)control;
 string SortField = (string)e.SortExpression;
            string SortField = (string)e.SortExpression;
 string oldSortParam = faggruppeGrid.Attributes["SortExpression"];
            string oldSortParam = faggruppeGrid.Attributes["SortExpression"];
 if(oldSortParam.StartsWith(SortField))
            if(oldSortParam.StartsWith(SortField))
 {
            {
 //order by the same column.
                //order by the same column.
 if(oldSortParam.EndsWith("ASC"))
                 if(oldSortParam.EndsWith("ASC")) 
 {
                    {
 oldSortParam = oldSortParam.Replace("ASC","DESC");
                         oldSortParam = oldSortParam.Replace("ASC","DESC");
 //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。
                         //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。
 }
                    }
 else
                    else
 {
                    {
 oldSortParam = oldSortParam.Replace("DESC","ASC");
                        oldSortParam = oldSortParam.Replace("DESC","ASC");
 //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。
                        //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。
 }
                    }

 }
            }
 else
            else
 {
            {
 oldSortParam = SortField + " ASC";
                oldSortParam = SortField + " ASC";
 }
            }
 faggruppeGrid.Attributes["SortExpression"] = oldSortParam;
            faggruppeGrid.Attributes["SortExpression"] = oldSortParam;
 BindGrid();
            BindGrid();
 }
        }

 //绑定数据
        //绑定数据
 private void BindGrid()
        private void BindGrid()
 {
        {
 //设置初始排序字段
            //设置初始排序字段
 if(faggruppeGrid.Attributes["SortExpression"] == null)
            if(faggruppeGrid.Attributes["SortExpression"] == null)
 faggruppeGrid.Attributes["SortExpression"] = "Fag ASC";
                faggruppeGrid.Attributes["SortExpression"] = "Fag ASC";
 DataView dv = dt.DefaultView;
            DataView dv = dt.DefaultView;
 //按指定的排序字段排序
            //按指定的排序字段排序
 dv.Sort = faggruppeGrid.Attributes["SortExpression"];
            dv.Sort = faggruppeGrid.Attributes["SortExpression"];
 faggruppeGrid.DataSource = dt;
            faggruppeGrid.DataSource = dt;
 faggruppeGrid.DataBind();
            faggruppeGrid.DataBind();
 }
        }

 private void faggruppeGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        private void faggruppeGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 {
        {
 if(e.Item.ItemType != ListItemType.Header) return;
            if(e.Item.ItemType != ListItemType.Header) return;
 //以下获取排序表达式
            //以下获取排序表达式
 if(faggruppeGrid.Attributes["SortExpression"]==null) return;
            if(faggruppeGrid.Attributes["SortExpression"]==null) return;
 string sortExpression = faggruppeGrid.Attributes["SortExpression"];
            string sortExpression = faggruppeGrid.Attributes["SortExpression"];
 string[] orderParams = sortExpression.Split(' ');
            string[] orderParams = sortExpression.Split(' ');
 //获取Image对象
             //获取Image对象
 System.Web.UI.Control control = (e.Item).FindControl("Img" + orderParams[0]);
            System.Web.UI.Control control = (e.Item).FindControl("Img" + orderParams[0]);

 if(control == null) return;
            if(control == null) return;
 ImgArrow = (System.Web.UI.WebControls.Image)control;
            ImgArrow = (System.Web.UI.WebControls.Image)control;
 ImgArrow.Visible = true;
            ImgArrow.Visible = true;

 //设置图像Url
            //设置图像Url
 if(sortExpression.EndsWith("ASC"))
            if(sortExpression.EndsWith("ASC")) 
 ImgArrow.ImageUrl = "../Images/Up.gif";
                ImgArrow.ImageUrl = "../Images/Up.gif";
 else
            else
 ImgArrow.ImageUrl = "../Images/Down.gif";
                ImgArrow.ImageUrl = "../Images/Down.gif";
 }
        }

 #endregion
        #endregion
 }
    }
 }
}
 
 DataGrid设置如下:
 <asp:DataGrid id="faggruppeGrid" runat="server" BorderColor="Black" BorderWidth="1px" CellPadding="3"
<asp:DataGrid id="faggruppeGrid" runat="server" BorderColor="Black" BorderWidth="1px" CellPadding="3" Width="300px" HeaderStyle-BackColor="#7f9db9" HorizontalAlign="Center" AutoGenerateColumns="False"
    Width="300px" HeaderStyle-BackColor="#7f9db9" HorizontalAlign="Center" AutoGenerateColumns="False" AllowSorting="True">
    AllowSorting="True"> <HeaderStyle BackColor="#7F9DB9"></HeaderStyle>
    <HeaderStyle BackColor="#7F9DB9"></HeaderStyle> <Columns>
    <Columns> <!-- 第一列 -->
    <!-- 第一列 --> <asp:TemplateColumn>
     <asp:TemplateColumn> <HeaderTemplate>
      <HeaderTemplate> <asp:LinkButton id="lbFag" runat="server" CommandName="sort" CommandArgument="Fag" CausesValidation="False">Fag</asp:LinkButton>
       <asp:LinkButton id="lbFag" runat="server" CommandName="sort" CommandArgument="Fag" CausesValidation="False">Fag</asp:LinkButton> <asp:Image Runat="server" ID="ImgFag" ImageUrl="../images/Up.gif" Visible="False" />    <!--箭头图标-->
       <asp:Image Runat="server" ID="ImgFag" ImageUrl="../images/Up.gif" Visible="False" />    <!--箭头图标--> </HeaderTemplate>
      </HeaderTemplate> <ItemTemplate>
      <ItemTemplate> <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Fag") %>' ID="Label1"/>
       <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Fag") %>' ID="Label1"/> </ItemTemplate>
      </ItemTemplate> </asp:TemplateColumn>
     </asp:TemplateColumn> <!-- 第二列 -->
    <!-- 第二列 --> <asp:TemplateColumn>
     <asp:TemplateColumn> <HeaderTemplate>
      <HeaderTemplate> <asp:LinkButton id="lbNavn" runat="server" CommandName="sort" CommandArgument="Navn" CausesValidation="False">Navn</asp:LinkButton>
       <asp:LinkButton id="lbNavn" runat="server" CommandName="sort" CommandArgument="Navn" CausesValidation="False">Navn</asp:LinkButton> <asp:Image Runat="server" ID="ImgNavn" ImageUrl="../images/Up.gif" Visible="False" />
       <asp:Image Runat="server" ID="ImgNavn" ImageUrl="../images/Up.gif" Visible="False" /> </HeaderTemplate>
      </HeaderTemplate> <ItemTemplate>
      <ItemTemplate> <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Navn") %>' ID="Label2"/>
       <asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Navn") %>' ID="Label2"/> </ItemTemplate>
      </ItemTemplate> </asp:TemplateColumn>
     </asp:TemplateColumn> <!-- 第三列 -->
    <!-- 第三列 --> <asp:HyperLinkColumn DataNavigateUrlField="Fag" DataNavigateUrlFormatString="JavaScript:ReturnFagnummer('{0}');" Text="Indsæt" />
     <asp:HyperLinkColumn DataNavigateUrlField="Fag" DataNavigateUrlFormatString="JavaScript:ReturnFagnummer('{0}');" Text="Indsæt" /> </Columns>
    </Columns> </asp:DataGrid>
   </asp:DataGrid>
后台处理代码:
 using System;
using System; using System.Collections;
using System.Collections; using System.ComponentModel;
using System.ComponentModel; using System.Data;
using System.Data; using System.Drawing;
using System.Drawing; using System.Web;
using System.Web; using System.Web.SessionState;
using System.Web.SessionState; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls; using Pensam.Praesentation.BMSWIService;
using Pensam.Praesentation.BMSWIService; using Pensam.GenNS;
using Pensam.GenNS; using Microsoft.ApplicationBlocks.ExceptionManagement;
using Microsoft.ApplicationBlocks.ExceptionManagement;
 namespace Pensam.Praesentation.Medarbejder
namespace Pensam.Praesentation.Medarbejder {
{ /// <summary>
    /// <summary> /// Summary description for FaggruppeListe.
    /// Summary description for FaggruppeListe. /// </summary>
    /// </summary> public class FaggruppeListe : BaseWebPage
    public class FaggruppeListe : BaseWebPage {
    { #region member variables
        #region member variables protected System.Web.UI.WebControls.DataGrid faggruppeGrid;
        protected System.Web.UI.WebControls.DataGrid faggruppeGrid; protected System.Web.UI.WebControls.Image ImgArrow = null;
        protected System.Web.UI.WebControls.Image ImgArrow = null; private DataTable dt = null;
        private DataTable dt = null; #endregion
        #endregion
 private void Page_Load(object sender, System.EventArgs e)
        private void Page_Load(object sender, System.EventArgs e) {
        { VisFagGrps();
            VisFagGrps(); if(!this.IsPostBack) BindGrid();
            if(!this.IsPostBack) BindGrid(); //if(this.IsPostBack) Response.Write("post back");
            //if(this.IsPostBack) Response.Write("post back"); }
        }
 #region Web Form Designer generated code
        #region Web Form Designer generated code override protected void OnInit(EventArgs e)
        override protected void OnInit(EventArgs e) {
        { //
            // // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            // CODEGEN: This call is required by the ASP.NET Web Form Designer. //
            // InitializeComponent();
            InitializeComponent(); base.OnInit(e);
            base.OnInit(e); }
        } 
         /// <summary>
        /// <summary> /// Required method for Designer support - do not modify
        /// Required method for Designer support - do not modify /// the contents of this method with the code editor.
        /// the contents of this method with the code editor. /// </summary>
        /// </summary> private void InitializeComponent()
        private void InitializeComponent() {
        {     this.faggruppeGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.faggruppeGrid_SortCommand);
            this.faggruppeGrid.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.faggruppeGrid_SortCommand); this.faggruppeGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.faggruppeGrid_ItemDataBound);
            this.faggruppeGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.faggruppeGrid_ItemDataBound); this.Load += new System.EventHandler(this.Page_Load);
            this.Load += new System.EventHandler(this.Page_Load);
 }
        } #endregion
        #endregion
 #region private functions
        #region private functions //生成绑定数据
        //生成绑定数据 private void VisFagGrps()
        private void VisFagGrps() {
        { /*
            /* using(PSLog logger = new PSLog())
            using(PSLog logger = new PSLog()) {
            { try
                try {
                { if(this.ServiceDelegate == null) return;
                    if(this.ServiceDelegate == null) return; ArrayList list1 = new ArrayList(this.ServiceDelegate.GetFaggruppeListe());
                    ArrayList list1 = new ArrayList(this.ServiceDelegate.GetFaggruppeListe()); if(list1 == null)
                    if(list1 == null) {
                    { this.VisErrorMessage("Get professional category list failed.");
                        this.VisErrorMessage("Get professional category list failed."); }
                    } }
                } catch(Exception ex)
                catch(Exception ex) {
                { VisErrorMessage(ex.Message);
                    VisErrorMessage(ex.Message); ExceptionManager.Publish(ex);
                    ExceptionManager.Publish(ex); }
                } }
            } */
            */ 
            
 dt = new DataTable();
            dt = new DataTable(); DataRow dr;
            DataRow dr;
 dt.Columns.Add(new DataColumn("Fag", typeof(string)));
            dt.Columns.Add(new DataColumn("Fag", typeof(string))); dt.Columns.Add(new DataColumn("Navn", typeof(string)));
            dt.Columns.Add(new DataColumn("Navn", typeof(string)));
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag01000001";
            dr["Fag"] = "Fag01000001"; dr["Navn"] = "Fag0101";
            dr["Navn"] = "Fag0101"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag01000002";
            dr["Fag"] = "Fag01000002"; dr["Navn"] = "Fag0102";
            dr["Navn"] = "Fag0102"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag01000003";
            dr["Fag"] = "Fag01000003"; dr["Navn"] = "Fag0103";
            dr["Navn"] = "Fag0103"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag02000001";
            dr["Fag"] = "Fag02000001"; dr["Navn"] = "Fag0201";
            dr["Navn"] = "Fag0201"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag02000002";
            dr["Fag"] = "Fag02000002"; dr["Navn"] = "Fag0202";
            dr["Navn"] = "Fag0202"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag02000003";
            dr["Fag"] = "Fag02000003"; dr["Navn"] = "Fag0203";
            dr["Navn"] = "Fag0203"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag03000001";
            dr["Fag"] = "Fag03000001"; dr["Navn"] = "Fag0301";
            dr["Navn"] = "Fag0301"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag03000002";
            dr["Fag"] = "Fag03000002"; dr["Navn"] = "Fag0302";
            dr["Navn"] = "Fag0302"; dt.Rows.Add(dr);
            dt.Rows.Add(dr);
 dr = dt.NewRow();
            dr = dt.NewRow(); dr["Fag"] = "Fag03000003";
            dr["Fag"] = "Fag03000003"; dr["Navn"] = "Fag0303";
            dr["Navn"] = "Fag0303"; dt.Rows.Add(dr);
            dt.Rows.Add(dr); }
        }
 private void faggruppeGrid_SortCommand(Object sender, DataGridSortCommandEventArgs e)
        private void faggruppeGrid_SortCommand(Object sender, DataGridSortCommandEventArgs e)  {
        { System.Web.UI.Control control = ((DataGridItem)e.CommandSource).FindControl("ImgArrow");
            System.Web.UI.Control control = ((DataGridItem)e.CommandSource).FindControl("ImgArrow"); //Response.Write(control.ToString());
            //Response.Write(control.ToString()); ImgArrow = (System.Web.UI.WebControls.Image)control;
            ImgArrow = (System.Web.UI.WebControls.Image)control; string SortField = (string)e.SortExpression;
            string SortField = (string)e.SortExpression; string oldSortParam = faggruppeGrid.Attributes["SortExpression"];
            string oldSortParam = faggruppeGrid.Attributes["SortExpression"]; if(oldSortParam.StartsWith(SortField))
            if(oldSortParam.StartsWith(SortField)) {
            { //order by the same column.
                //order by the same column. if(oldSortParam.EndsWith("ASC"))
                 if(oldSortParam.EndsWith("ASC"))  {
                    { oldSortParam = oldSortParam.Replace("ASC","DESC");
                         oldSortParam = oldSortParam.Replace("ASC","DESC"); //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。
                         //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。 }
                    } else
                    else {
                    { oldSortParam = oldSortParam.Replace("DESC","ASC");
                        oldSortParam = oldSortParam.Replace("DESC","ASC"); //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。
                        //ImgArrow.ImageUrl = "../Images/Up.gif"; //实践证明在此设置图像行不通,需在ItemDataBound事件中实现。 }
                    }
 }
            } else
            else {
            { oldSortParam = SortField + " ASC";
                oldSortParam = SortField + " ASC"; }
            } faggruppeGrid.Attributes["SortExpression"] = oldSortParam;
            faggruppeGrid.Attributes["SortExpression"] = oldSortParam; BindGrid();
            BindGrid(); }
        }
 //绑定数据
        //绑定数据 private void BindGrid()
        private void BindGrid() {
        { //设置初始排序字段
            //设置初始排序字段 if(faggruppeGrid.Attributes["SortExpression"] == null)
            if(faggruppeGrid.Attributes["SortExpression"] == null) faggruppeGrid.Attributes["SortExpression"] = "Fag ASC";
                faggruppeGrid.Attributes["SortExpression"] = "Fag ASC"; DataView dv = dt.DefaultView;
            DataView dv = dt.DefaultView; //按指定的排序字段排序
            //按指定的排序字段排序 dv.Sort = faggruppeGrid.Attributes["SortExpression"];
            dv.Sort = faggruppeGrid.Attributes["SortExpression"]; faggruppeGrid.DataSource = dt;
            faggruppeGrid.DataSource = dt; faggruppeGrid.DataBind();
            faggruppeGrid.DataBind(); }
        }
 private void faggruppeGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        private void faggruppeGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {
        { if(e.Item.ItemType != ListItemType.Header) return;
            if(e.Item.ItemType != ListItemType.Header) return; //以下获取排序表达式
            //以下获取排序表达式 if(faggruppeGrid.Attributes["SortExpression"]==null) return;
            if(faggruppeGrid.Attributes["SortExpression"]==null) return; string sortExpression = faggruppeGrid.Attributes["SortExpression"];
            string sortExpression = faggruppeGrid.Attributes["SortExpression"]; string[] orderParams = sortExpression.Split(' ');
            string[] orderParams = sortExpression.Split(' '); //获取Image对象
             //获取Image对象 System.Web.UI.Control control = (e.Item).FindControl("Img" + orderParams[0]);
            System.Web.UI.Control control = (e.Item).FindControl("Img" + orderParams[0]);
 if(control == null) return;
            if(control == null) return; ImgArrow = (System.Web.UI.WebControls.Image)control;
            ImgArrow = (System.Web.UI.WebControls.Image)control; ImgArrow.Visible = true;
            ImgArrow.Visible = true;
 //设置图像Url
            //设置图像Url if(sortExpression.EndsWith("ASC"))
            if(sortExpression.EndsWith("ASC"))  ImgArrow.ImageUrl = "../Images/Up.gif";
                ImgArrow.ImageUrl = "../Images/Up.gif"; else
            else ImgArrow.ImageUrl = "../Images/Down.gif";
                ImgArrow.ImageUrl = "../Images/Down.gif"; }
        }
 #endregion
        #endregion }
    } }
} 
                    
                     
                    
                 
                    
                 
                
 
 
        

 
     
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号