如何在GridView(ASP.NET)中进入更新模式之前刷新整个页面



我有一个网站,管理员可以删除或添加新的gridview。例如,如果我目前有Giordano产品的Gridview,并且想将品牌更改为Bossini产品。当管理员单击编辑按钮时,应删除佐丹诺产品的整个GridView和代码,如果我已经处于更新模式并将品牌名称更改为" Bossini"并单击更新,则应为Bossini产品添加新的GridView和代码。

现在是问题。当我单击"编辑"按钮时,它将删除整个GridView代码,但GridView本身仍然出现在网站中。我终于知道我需要刷新页面,但我还不知道最好的方法。我已经尝试了响应响应。吉他布兰德·格里德维(Guitrandsgridview_rowediting)中的redirect(" url"),但它不起作用,它给了我一个例外。它适用于Guitarbrandsgridview_rowdeleting tho。我只是以为它可能适用于我的编辑按钮,但失败了。

我的目标是,当我单击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:UsersUser1DocumentsVisual Studio 2015WebSitesMusicStorePagesGuitarItems" + id + ".aspx");
    File.Delete(@"C:UsersUser1DocumentsVisual Studio 2015WebSitesMusicStorePagesGuitarItems" + 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:UsersUser1DocumentsVisual Studio 2015WebSitesMusicStorePagesGuitarItems" + id + ".aspx");
    File.Delete(@"C:UsersUser1DocumentsVisual Studio 2015WebSitesMusicStorePagesGuitarItems" + 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");

在您希望您的页面刷新的位置,您需要提供页面的完整路径,它将重新加载该页面。我希望它能为我工作

最新更新