ASP中的GridView排序.. NET 2使用c#

本文关键字:使用 NET 排序 中的 GridView ASP | 更新日期: 2023-09-27 18:10:34

我需要在ASP中的GridView排序。. NET 2使用c#并尝试本教程:http://www.dotnetfox.com/articles/gridview -排序-例如- - asp -网-使用- c -夏普1082. aspx

下面是我的代码c# . net 2排序列在GridView,但我有这个错误:

Exception Details: System.IndexOutOfRangeException: Cannot find table 0.
这行

为什么?

Line 39:         GridViewBind();
Line 40:         DataTable dt = new DataTable();
Line 41:         dt = ds.Tables[0];
Line 42:         {
Line 43:             string SortDir = string.Empty;

DataSet ds = new DataSet();
public SortDirection dir
{
    get
    {
        if (ViewState["dirState"] == null)
        {
            ViewState["dirState"] = SortDirection.Ascending;
        }
        return (SortDirection)ViewState["dirState"];
    } 
    set
    {
        ViewState["dirState"] = value;
    }
}
protected void gvEmployee_Sorting(object sender, GridViewSortEventArgs e)
{
    GridViewBind();
    DataTable dt = new DataTable();
    dt = ds.Tables[0];
    {
        string SortDir = string.Empty;
        if (dir == SortDirection.Ascending)
        {
            dir = SortDirection.Descending;
            SortDir = "Desc";
        }
        else
        {
            dir = SortDirection.Ascending;
            SortDir = "Asc";
        }
        DataView sortedView = new DataView(dt);
        sortedView.Sort = e.SortExpression + " " + SortDir;
        GridView1.DataSource = sortedView;
        GridView1.DataBind();
    }
}

public void GridViewBind()
{
    SQL = " SELECT * FROM doTable; ";
    try
    {
        conn.Open();
        dadapter = new OdbcDataAdapter(SQL, conn);
        dset = new DataSet();
        dset.Clear();
        dadapter.Fill(dset);
        GridView1.DataSource = dset.Tables[0];
        GridView1.DataBind();
    }
    catch (Exception ee)
    {
        throw ee;
    }
    finally
    {
        conn.Close();
        conn.Dispose();
    }
}

编辑1

using System;
using System.Configuration;
using System.Data;
using System.Data.Odbc;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Av_Default : System.Web.UI.Page
{
    OdbcConnection conn =
        new OdbcConnection(ConfigurationManager.ConnectionStrings["cs"].ConnectionString);
    string SQL;
    OdbcDataAdapter dadapter;
    DataSet dset;
    DataTable dt = new DataTable();
    DataSet ds = new DataSet();
    public SortDirection dir
    {
        get
        {
            if (ViewState["dirState"] == null)
            {
                ViewState["dirState"] = SortDirection.Ascending;
            }
            return (SortDirection)ViewState["dirState"];
        } 
        set
        {
            ViewState["dirState"] = value;
        }
    }
    protected void gvEmployee_Sorting(object sender, GridViewSortEventArgs e)
    {
        GridViewBind();
        DataTable dt = new DataTable();
        dt = ds.Tables[0];
        {
            string SortDir = string.Empty;
            if (dir == SortDirection.Ascending)
            {
                dir = SortDirection.Descending;
                SortDir = "Desc";
            }
            else
            {
                dir = SortDirection.Ascending;
                SortDir = "Asc";
            }
            DataView sortedView = new DataView(dt);
            sortedView.Sort = e.SortExpression + " " + SortDir;
            GridView1.DataSource = sortedView;
            GridView1.DataBind();
        }
    }

    public void GridViewBind()
    {
        SQL = " SELECT * FROM doTAble; ";
        try
        {
            conn.Open();
            dadapter = new OdbcDataAdapter(SQL, conn);
            dset = new DataSet();
            dset.Clear();
            dadapter.Fill(dset);
            GridView1.DataSource = dset.Tables[0];
            GridView1.DataBind();
        }
        catch (Exception ee)
        {
            throw ee;
        }
        finally
        {
            conn.Close();
            conn.Dispose();
        }
    }

ASP中的GridView排序.. NET 2使用c#

protected void gvEmployee_Sorting(object sender, GridViewSortEventArgs e)
{
    DataTable dt = GetRows();
    {
        string SortDir = string.Empty;
        if (dir == SortDirection.Ascending)
        {
            dir = SortDirection.Descending;
            SortDir = "Desc";
        }
        else
        {
            dir = SortDirection.Ascending;
            SortDir = "Asc";
        }
        DataView sortedView = new DataView(dt);
        sortedView.Sort = e.SortExpression + " " + SortDir;
        GridView1.DataSource = sortedView;
        GridView1.DataBind();
    }
}
 public void GridViewBind(DataTable dt){
     GridView1.DataSource=dt;
     GridView1.DataBind();
 }
 public DataTable GetRows()
{
    var SQL = " SELECT * FROM doTAble; ";
    //You should use the "using" resource acquisition statement
    // http://www.dotnetperls.com/sqlconnection
    using(var conn=new OdbcConnection(ConfigurationManager.ConnectionStrings["cs"].ConnectionString))
    {
        conn.Open();
        var dadapter = new OdbcDataAdapter(SQL, conn);
        var dset = new DataSet();
        dadapter.Fill(dset);
        return dset.Tables[0];
   }
}