在asp.net中如何清除GridView?

我在asp.net中做一个网页,在一个模块中select一个带有FileUpLoad的Excel存档,然后点击button导入。 到目前为止我没事。 但是,在我想要select其他Excel存档并点击button导入的时刻,不要清除GridView并显示错误。 我尝试这个,因为我在其他类似的问题看到。

有了这个我加载网格

 Conn = string.Format(Conn, DireccionArchivo, MostrarHDR); OleDbConnection ConnExcel = new OleDbConnection(Conn); OleDbCommand CmdExcel = new OleDbCommand(); OleDbDataAdapter Oda = new OleDbDataAdapter(); DataTable Dt = new DataTable(); CmdExcel.Connection = ConnExcel; ConnExcel.Open(); CmdExcel.CommandText = "SELECT * From ["Page1$"]"; Oda.SelectCommand = CmdExcel; Oda.Fill(Dt); ConnExcel.Close(); grdResultados.Caption = Path.GetFileName(DireccionArchivo); grdResultados.DataSource = Dt; grdResultados.DataBind(); 

我想清除GridView ,最后调用新的加载GridView的方法

 DataTable ds = new DataTable(); ds = null; grdResultados.DataSource = ds; grdResultados.DataBind(); 

比显示我的错误是在grdResultados.DataBind(); 当第二次打电话。

只需使用空值:

 grdResultados.DataSource = null; grdResultados.DataBind(); 

我解决了这个问题,在清理GridView的那一刻

 DataTable ds = new DataTable(); ds = null; grdResultados.DataSource = ds; grdResultados.DataBind(); 

这清除了GridView,但不清除列的名称,这是错误,也必须清理列的名称。 要删除列:

 for (int i = 0; grdResultados.Columns.Count > i; ) { grdResultados.Columns.RemoveAt(i); } 

在加载的方法中,GridView必须自动生成具有以下属性的列:

 grdResultados.AutoGenerateColumns = true; 

我留下这个以防其他人有同样的问题

 int gvHasRows = grdResultados.Rows.Count; if (gvHasRows > 0) { grdResultados.Columns.Clear(); grdResultados.DataBind(); } 

在尝试清除之前,首先检查Gridview中是否有数据。 行没有清除function。

尝试这个

 grdResultados.DataSource = null; 

要么

 grdResultados.Rows.Clear(); 

然后重新绑定gridview

如果您使用会话清除会话示例:

 DataTable ds = new DataTable(); ds = null; GV.DataSource = ds; GV.DataBind(); for (int i = 0; GV.Columns.Count > i; ) { GV.Columns.RemoveAt(i); } ViewState["CurrentData"] = null; 

用你的列名创build一个空的数据表,然后重新绑定

你可以简单地做到这一点:

 GridView1.SelectedIndex = -1;