簡體   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