<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" CellPadding="5" Width="500px" OnSorting="GridView1_Sorting" AllowSorting="true">
            <Columns>
              <asp:TemplateField HeaderText="序号">
                  <ItemTemplate>  
                      <%# Container.DataItemIndex + 1%>  
                    </ItemTemplate>  
              </asp:TemplateField>
              <asp:BoundField DataField="username" HeaderText="UserName" SortExpression="username" />
              <asp:BoundField DataField="realname" HeaderText="RealName" SortExpression="realname" />
            </Columns>
            <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White"/>
        </asp:GridView>
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["SortOrder"] = "userid";
            ViewState["OrderDire"] = "asc";
            BindGrid();
        }
    }
    private void BindGrid()
    {
        string sql = "select * from [user]";
        OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("test.mdb"));
        OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
        DataSet ds = new DataSet();
        da.Fill(ds, "temp");
        DataView view = ds.Tables["temp"].DefaultView;
        string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
        view.Sort = sort;
        GridView1.DataSource = view;
        GridView1.DataBind();
    }
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        string sPage = e.SortExpression;
        if (ViewState["SortOrder"].ToString() == sPage)
        {
            if (ViewState["OrderDire"].ToString() == "Desc")
                ViewState["OrderDire"] = "ASC";
            else
                ViewState["OrderDire"] = "Desc";
        }
        else
        {
            ViewState["SortOrder"] = e.SortExpression;
        }
        BindGrid();
    }
演示 下载