如何清楚asp.net中的GridView?

时间:2014-06-05 22:43:41

标签: c# asp.net excel gridview

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

有了这个,我想清除GridView和最后一次调用新方法加载GridView

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

第二次调用时,显示我的错误位于grdResultados.DataBind();

8 个答案:

答案 0 :(得分:28)

只需使用空值:

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

答案 1 :(得分:9)

我现在解决了这个问题,而不是使用

清除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;

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

答案 2 :(得分:2)

试试这个

grdResultados.DataSource = null;

grdResultados.Rows.Clear();

然后重新绑定gridview

答案 3 :(得分:2)

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

在尝试清除之前,首先检查Gridview中是否有数据。 行没有明确的功能。

答案 4 :(得分:1)

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

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;

答案 5 :(得分:0)

使用您的列名创建一个空数据表并重新绑定

答案 6 :(得分:0)

你可以这样做:

this.loginService.setLoginData(
    new LoginModel( this.userId, this.bankId, this.password )
  ).checkIfLoginSuccessfull();

答案 7 :(得分:0)

如果数据集不算什么AndAlso数据集Tables.Count> 0 AndAlso数据集Tables(0).Rows.Count> 0然后 grid.DataSource =数据集 grid.DataBind() 其他 grid.DataSource =什么都没有 grid.DataBind()