实现DataGrid拖动和排序


1.html

<HTML>
    
<HEAD>
        
<title>MoveDataGrid</title>
        
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        
<meta name="CODE_LANGUAGE" Content="C#">
        
<meta name="vs_defaultClientScript" content="JavaScript">
        
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    
</HEAD>
    
<body MS_POSITIONING="GridLayout">
        
<form id="Form1" method="post" runat="server">
            
<asp:DataGrid id="DataGrid1" style="BEHAVIOR: url(movegrid.htc)" runat="server" BackColor="White"
                BorderWidth
="1px" BorderStyle="None" BorderColor="#CC9966" CellPadding="4" Font-Size="9pt">
                
<SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
                
<ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
                
<HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
                
<FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
                
<PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC"></PagerStyle>
            
</asp:DataGrid>
        
</form>
    
</body>
</HTML>

2.cs

public class MoveDataGrid : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.DataGrid DataGrid1;
        
private string constring="";
        
private int nColumn = 0;
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
string sql="select * from testgrid";
            DataSet ds
=GetDataSet(sql);
            DataGrid1.Attributes.Add(
"dragcolor","gray");
            DataGrid1.Attributes.Add(
"slcolor","#ffffcc");
            DataGrid1.Attributes.Add(
"hlcolor","#BEC5DE");
            nColumn
=ds.Tables[0].Columns.Count;
            
this.DataGrid1.DataSource=ds;
            
this.DataGrid1.DataBind();
        }



        
#region GetDataSet
        
private DataSet GetDataSet(string sql)
        
{
            constring
=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
            SqlDataAdapter    sda 
=new SqlDataAdapter(sql,constring);
            DataSet ds
=new DataSet();
            sda.Fill(ds);
            
return ds;
        }

        
#endregion


        
#region Web Form Designer generated code
        
override protected void OnInit(EventArgs e)
        
{
            
//
            
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
            
//
            InitializeComponent();
            
base.OnInit(e);
            
this.DataGrid1.ItemCreated+=new DataGridItemEventHandler(DataGrid1_ItemCreated);
        }

        
        
/// <summary>
        
/// Required method for Designer support - do not modify
        
/// the contents of this method with the code editor.
        
/// </summary>

        private void InitializeComponent()
        
{    
            
this.Load += new System.EventHandler(this.Page_Load);

        }

        
#endregion


        
private void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
        
{
            
if(e.Item.ItemType==ListItemType.Header)
            
{
                
for(int i = 0;i<nColumn;i++)
                
{                
                    e.Item.Cells[i].Attributes.Add(
"Width","200");
                }

            }

        }

    }