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();
}
}
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];
}
}