在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;