C# 如何在不更改gridview页面索引的情况下只刷新一次网页?

C# 如何在不更改gridview页面索引的情况下只刷新一次网页?,c#,asp.net,database,gridview,C#,Asp.net,Database,Gridview,我注意到,当我在gridview中删除一个项目时,页面将回发,我删除的项目在gridview中仍然可见。但当我刷新包含gridview的网页时,已删除的项目在gridview中不再可见 所以我决定我需要做一个响应。在我的代码中重定向,这样删除的项目将不再可见。它确实工作得很好,但它总是返回到gridview的第一页索引。目前我的gridview中有5个页面索引。如果我删除了页面索引5中的数据,response.redirect将执行,然后返回到页面索引1。我需要一直返回到页面索引5,以检查是否在

我注意到,当我在gridview中删除一个项目时,页面将回发,我删除的项目在gridview中仍然可见。但当我刷新包含gridview的网页时,已删除的项目在gridview中不再可见

所以我决定我需要做一个响应。在我的代码中重定向,这样删除的项目将不再可见。它确实工作得很好,但它总是返回到gridview的第一页索引。目前我的gridview中有5个页面索引。如果我删除了页面索引5中的数据,response.redirect将执行,然后返回到页面索引1。我需要一直返回到页面索引5,以检查是否在我的gridview中删除了数据,而我的gridview实际上已被删除

现在,我在网上找到了一段代码,介绍了如何在刷新网页时保持页面索引不变。解决方案是会话。我已经将代码与会话集成在一起,但现在问题出在这里。它总是停留在您进入的最后一页索引中。假设您在gridview的页面索引5中,然后转到主页,如果您返回到包含gridview的网页,它仍将位于页面索引5中

我想做的是,当我在gridview中删除一个项目时,它将刷新网页,但gridview页面索引将位于最后一个页面索引上,您的页面索引将只插入一次,这样删除的项目将不再可见。最后,当我决定转到另一个页面(比如主页或关于页面)并返回具有gridview的网页时,它应该能够重置为gridview的第一个索引。如何做到这一点?我希望这对你们有意义

代码如下:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack){
        bindgridviewguitaritems();

        if (Session["pageNumber"] != null)
        {
           GridViewIndexChanging(GuitarItemsGridView, new GridViewPageEventArgs((int)Session["pageNumber"]));
        }

    }
}

protected void GridViewIndexChanging(object sender, GridViewPageEventArgs e)
{
    GuitarItemsGridView.PageIndex = e.NewPageIndex;
    Session["pageNumber"] = e.NewPageIndex;
    //whatever your page index changing does...
}

protected void GuitarItemsGridViewBtn_Click(object sender, EventArgs e)
{
      Button btn = sender as Button;
      GridViewRow gridrow = btn.NamingContainer as GridViewRow;
      int id = Convert.ToInt32(GuitarItemsGridView.DataKeys[gridrow.RowIndex].Value.ToString());

    using (var context = new MusicStoreDBEntities())
    {
        var bay = (from s in context.stringInstrumentItems where s.itemId == id select s).FirstOrDefault();
        context.stringInstrumentItems.Remove(bay);
        context.SaveChanges();


    }

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

只需使用JS在前端隐藏已删除的项目,并执行AJAX调用以从数据库中删除记录。您可以使用
UpdatePanel
。从数据库中删除该项,并使用更新的数据重新绑定网格。该行将消失,并且没有(可见)页面刷新。删除该项目后,您应执行以下操作
var pageindex=guitariemsgridview.pageindex;bindgridviewguitaritems();guitariemsgridview.PageIndex=PageIndex您不需要使用会话。