簡體   English   中英

如何在gridview(asp.net)進入更新模式之前刷新整個頁面?

[英]How to refresh whole page before going into update mode in gridview(asp.net)?

我有一個網站,管理員可以在其中刪除或添加新的gridview。 例如,如果我當前擁有giordano產品的gridview,並且想要將品牌更改為bossini產品。 當管理員單擊“編輯”按鈕時,應該刪除giordano產品的整個gridview和代碼,如果我已經處於更新模式,並將品牌名稱更改為“ bossini”並單擊“ update”,則應該為bossini產品添加新的gridview和代碼。

現在是問題所在。 當我單擊編輯按鈕時,它將刪除整個gridview代碼,但gridview本身仍顯示在網站中。 我終於知道我需要刷新頁面,但是我還不知道最好的方法。 我已經在GuitarBrandsGridView_RowEditing中嘗試過Response.Redirect(“ urls”),但是它不起作用,給了我一個例外。 它適用於GuitarBrandsGridView_RowDeleting。 我只是假設它可能對我的編輯按鈕有效,但是失敗了。

我的目標是,當我單擊gridview中的“編輯”按鈕時,整個網頁應該刷新,然后進入更新模式。 希望這是有道理的。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack) {
        bindgridviewguitarbrands();
        BindGridViewDataList.GetItemsLoad();
    }
}

//Start of Gridview Code for Guitar Brands
private void bindgridviewguitarbrands()
{
    con1.Open();
    cmd1.CommandText = "SELECT * FROM [guitarBrands]";
    cmd1.Connection = con1;
    SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
    da1.Fill(ds1);
    con1.Close();
    GuitarBrandsGridView.DataBind();

}

protected void GuitarBrandsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        string name = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "Name"));
        Button button = (Button)e.Row.FindControl("GuitarBrandsGridViewBtnDelete");
        button.Attributes.Add("onclick", "JavaScript:return ConfirmationBox('" + name + "' )");
    }
}

protected void GuitarBrandsGridView_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

    int id = Convert.ToInt32(GuitarBrandsGridView.DataKeys[e.RowIndex].Value.ToString());
    Label name = (Label)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("lblName");

    RemoveCodeToGuitarFile.RemoveAddGuitarClass(name.Text);
    RemoveCodeToGuitarFile.RemoveConnectionClassGuitarItems(name.Text);
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataASPX(name.Text);
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataCode(name.Text);
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx");
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx.cs");
    ConnectionClassGuitarBrands.RemoveGuitarBrandsDatabase(name.Text);

    con1.Open();
    cmd1.CommandText = "DELETE FROM [guitarBrands] WHERE id=" + id;
    cmd1.Connection = con1;
    int a = cmd1.ExecuteNonQuery();

    con1.Close();

    if (a > 0) {
        bindgridviewguitarbrands();
    }

    Response.Redirect("~/Pages/OverviewGuitarData.aspx");

}

protected void GuitarBrandsGridView_RowEditing(object sender, GridViewEditEventArgs e)
{
    GuitarBrandsGridView.EditIndex = e.NewEditIndex;
    string id = GuitarBrandsGridView.DataKeys[e.NewEditIndex].Value.ToString();
    Label name = (Label)GuitarBrandsGridView.Rows[e.NewEditIndex].FindControl("lblName");

    RemoveCodeToGuitarFile.RemoveAddGuitarClass(name.Text);
    RemoveCodeToGuitarFile.RemoveConnectionClassGuitarItems(name.Text);
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataASPX(name.Text);
    RemoveCodeToGuitarFile.RemoveOverviewGuitarDataCode(name.Text);
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx");
    File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx.cs");
    ConnectionClassGuitarBrands.RemoveGuitarBrandsDatabase(name.Text);       

    bindgridviewguitarbrands();
    Response.Redirect("~/Pages/OverviewGuitarData.aspx");//this one is not working
}
// row update event
protected void GuitarBrandsGridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    // find student id of edit row
    string id = GuitarBrandsGridView.DataKeys[e.RowIndex].Value.ToString();
    // find updated values for update
    TextBox type = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtType");
    TextBox name = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtName");
    TextBox image = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtImage");


    cmd1 = new SqlCommand("UPDATE [guitarBrands] SET Type = '" + type.Text + "', Name = '" + name.Text + "', Image = '" + image.Text + "' WHERE ID = " + id, con1);
    con1.Open();
    cmd1.ExecuteNonQuery();
    con1.Close();

    int ID = Convert.ToInt32(id);
    ConnectionClassGuitarBrands.CreateGuitarBrandsDatabase(name.Text);
    AddCodeToGuitarFile.AddGuitarClassCode(name.Text, ID);
    AddCodeToGuitarFile.AddConnectionClassGuitarItems(name.Text);
    AddCodeToGuitarFile.AddOverviewGuitarDataASPX(name.Text, ID);
    AddCodeToGuitarFile.AddOverviewGuitarDataASPXCode(name.Text);
    AddASPXAndCSFileForGuitarBrands.AddFile(name.Text, ID);

    GuitarBrandsGridView.EditIndex = -1;
    bindgridviewguitarbrands();

}
// cancel row edit event
protected void GuitarBrandsGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
    string id = GuitarBrandsGridView.DataKeys[e.RowIndex].Value.ToString();
    TextBox name = (TextBox)GuitarBrandsGridView.Rows[e.RowIndex].FindControl("txtName");

    int ID = Convert.ToInt32(id);
    ConnectionClassGuitarBrands.CreateGuitarBrandsDatabase(name.Text);
    AddCodeToGuitarFile.AddGuitarClassCode(name.Text, ID);
    AddCodeToGuitarFile.AddConnectionClassGuitarItems(name.Text);
    AddCodeToGuitarFile.AddOverviewGuitarDataASPX(name.Text, ID);
    AddCodeToGuitarFile.AddOverviewGuitarDataASPXCode(name.Text);
    AddASPXAndCSFileForGuitarBrands.AddFile(name.Text,ID);

    GuitarBrandsGridView.EditIndex = -1;
    bindgridviewguitarbrands();
}

您無需刷新整個頁面

GuitarBrandsGridView.DataSource = ds1
GuitarBrandsGridView.DataBind();

然后將更新新數據

Response.Redirect("http://localhost:14999/Home/Index");

您希望頁面刷新的位置需要提供頁面的完整路徑,它將重新加載該頁面。 我希望它會為我工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM