0

アップロードしたファイルの詳細を GridView に表示するだけなので、GridView には 1 行しかありません。複数のファイルは許可されていません。

その単一の行を削除して新しいファイルをアップロードしようとすると、2 つの行 (新しいファイルと削除されたファイル) が表示されます。

私はすでに と を使ってみGridView.DataSource = nullましGridView.DataBind()た。

注: 削除後に GridView を再バインドしましたが、削除されたファイルが引き続き表示されます。

protected void DeleteLinkButton_Click(object sender, EventArgs e)
{
    if (Session["name"] != null)
    {
        string strPath = Session["filepath"].ToString();
        System.IO.File.Delete(strPath);

        GridView2.Rows[0].Visible = false;
        Label8.Text = "";
        Session["filename"] = null;
        Button3.Enabled = true;
    }

    GridView2.DataBind();
}
4

1 に答える 1

0

場合によっては、次のようなことをしなければなりませんでした。

//page level variable
bool refreshRequired = false;

protected void DeleteLinkButton_Click(object sender, EventArgs e)
{
    if (Session["name"] != null)
    {
        string strPath = Session["filepath"].ToString();
        System.IO.File.Delete(strPath);

        GridView2.Rows[0].Visible = false;
        Label8.Text = "";
        Session["filename"] = null;
        Button3.Enabled = true;

        refreshRequired = true;
    }

}

protected void Page_PreRender(object sender, EventArgs e)
{
    if(refreshRequired)
    {
        //whatever you to to set your grids dataset, do it here
        //but be sure to get the NEW data
    }
}

の時点でDelete、グリッドは古いデータにバインドされています。データを変更するときは、新しいデータに再バインドする必要があります。

于 2012-04-24T16:31:16.503 に答える