繁体   English   中英

asp.net 中的 GridView 有多清晰?

[英]How clear GridView in asp.net?

我在 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(); 第二次调用时。

只需使用空值:

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;

我离开这个以防其他人有同样的问题

尝试这个

grdResultados.DataSource = null;

或者

grdResultados.Rows.Clear();

然后重新绑定网格视图

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

在尝试清除之前,首先检查 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;

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

你可以简单地这样做:

GridView1.SelectedIndex = -1;

If dataset IsNot Nothing AndAlso dataset.Tables.Count > 0 AndAlso dataset.Tables(0).Rows.Count > 0 Then grid.DataSource = dataset grid.DataBind() Else grid.DataSource = Nothing grid.DataBind()

如果您使用的是 XAML 定义的网格,请改用以下代码:

GridView1.Children.Clear();
GridView1.RowDefinitions.Clear();
GridView1.ColumnDefinitions.Clear();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM