如何清楚asp.net中的GridView?

Fer*_*iza 7 c# asp.net excel gridview

我在asp.net和模块中进行网页选择Excel存档,FileUpLoad然后单击按钮导入.到目前为止我很好.但是在我想要的时刻选择其他Excel存档并单击按钮导入,不要清除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();
Run Code Online (Sandbox Code Playgroud)

并且有了这个我想清除GridView和最后y调用的新方法加载GridView

DataTable ds = new DataTable();
ds = null;
grdResultados.DataSource = ds;
grdResultados.DataBind();
Run Code Online (Sandbox Code Playgroud)

显示我的错误是在grdResultados.DataBind();第二次调用时.

Ali*_*Ali 29

只需使用空值:

grdResultados.DataSource = null;
grdResultados.DataBind();
Run Code Online (Sandbox Code Playgroud)


Fer*_*iza 9

我解决了这个问题,目前还没有清除GridView

DataTable ds = new DataTable();
ds = null;
grdResultados.DataSource = ds;
grdResultados.DataBind();
Run Code Online (Sandbox Code Playgroud)

这清除了GridView但是没有清除列的名称,这是错误,也必须清除列的名称.要删除列:

for (int i = 0; grdResultados.Columns.Count > i; )
{
    grdResultados.Columns.RemoveAt(i);
}
Run Code Online (Sandbox Code Playgroud)

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

grdResultados.AutoGenerateColumns = true;
Run Code Online (Sandbox Code Playgroud)

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

  • 您无需遍历列.而只是执行grdResultados.Columns.Clear(); 命令. (2认同)