GridView手动双向排序并加上排序图标

前台代码并没有什么就是一个GridView控件
主要是后台代码:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class Sort : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            GridView1.DataSource 
= this.GetDataset();
            GridView1.DataKeyNames 
= new String[] "id" };
            GridView1.DataBind();
            ViewState[
"OrderDire"= " Desc";
        }

    }

    
private string gvSortExpression
    
{
        
get
        
{
            
if (ViewState["SortOrder"!= null && ViewState["SortOrder"].ToString() != string.Empty)
            
{
                
return ViewState["SortOrder"].ToString();
            }

            
else
            
{
                
return "";
            }

        }

        
set
        
{
            ViewState[
"SortOrder"= value;
        }

    }

    
private DataSet  GetDataset()
    
{
        SqlConnection conn 
= new SqlConnection(ConfigurationManager.ConnectionStrings["Personal"].ConnectionString);
        conn.Open();
        SqlDataAdapter adp 
= new SqlDataAdapter("select * from information", conn);
        DataSet dataset 
= new DataSet();
        adp.Fill(dataset, 
"information");
        conn.Close();
        
return dataset;
    }

    
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    
{
        gvSortExpression 
= e.SortExpression;
            
if (ViewState["OrderDire"].ToString() == " Desc")
            
{
                ViewState[
"OrderDire"= " ASC";
            }

            
else
            
{
                ViewState[
"OrderDire"= " Desc";
            }
  
        DataView dataview 
= this.GetDataset().Tables[0].DefaultView;
        
string sort = gvSortExpression + " " + ViewState["OrderDire"].ToString();
        dataview.Sort 
= sort;
        GridView1.DataSource 
= dataview;
        GridView1.DataKeyNames 
= new String[] "id" };
        GridView1.DataBind();
    }

    
protected void ShowSortedIcon(GridView gvData, GridViewRow gvRow)
    
{
            
for (int index = 0; index <= gvData.Columns.Count - 1; index++)
            
{
                
if ((gvData.Columns[index].SortExpression == gvSortExpression) && (gvData.Columns[index].SortExpression !=""))
                
{
                    Image img 
= new Image();
                    
if ((string)ViewState["OrderDire"== " ASC")
                    
{
                        img.ImageUrl 
= "~/Images/SortUp.gif";
                        img.ToolTip 
= "递增排列";
                    }

                    
else
                    
{
                        img.ImageUrl 
= "~/Images/SortDown.gif";
                        img.ToolTip 
= "递减排列";
                    }

                    gvRow.Cells[index].Controls.Add(img);
                }

            }

    }

    
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    
{
        
if (e.Row.RowType == DataControlRowType.Header)
        
{
            ShowSortedIcon(GridView1, e.Row);
        }

    }

}

posted @ 2008-06-01 22:05  MicroCoder  阅读(1680)  评论(0编辑  收藏  举报