C# 从gridview问题中删除记录后刷新gridview

C# 从gridview问题中删除记录后刷新gridview,c#,asp.net,gridview,C#,Asp.net,Gridview,您好,我有一个问题,在我从网格视图中删除一些记录后,该记录仍然存在于网格视图中,尽管该记录已从数据库中删除 只有在我刷新页面后,记录才会从网格视图中消失 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { gridpurchase.DataSource = s.getpurchase(); gridpurchase.DataBind(); }

您好,我有一个问题,在我从网格视图中删除一些记录后,该记录仍然存在于网格视图中,尽管该记录已从数据库中删除

只有在我刷新页面后,记录才会从网格视图中消失

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        gridpurchase.DataSource = s.getpurchase();
        gridpurchase.DataBind();
    }

}
删除代码

protected void gridpurchase_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                string commandName = e.CommandName.ToString().Trim();
                GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);

                string PurchaseID = row.Cells[6].Text;
                GridViewRow gvRow = (GridViewRow)((Control)e.CommandSource).NamingContainer;
                Int32 rowind = gvRow.RowIndex;

                switch (commandName)
                {    
                    case "DeletePurchase":
                        if (s.DelPurchase(Convert.ToInt32(PurchaseID)))
                        {
                                string msg = "alert('Purchase Deleted Successfully');";
                               ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + msg + "');window.location.href='" + Request.RawUrl + "';", true); 
                        }
                        else
                        {
                            string msg = "Purchase Not Deleted";
                            ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + msg + "');window.location.href='" + Request.RawUrl + "';", true);

                        }
                        break;  
                }
            }

            catch (Exception ex)
            {
                Response.Write("Error:" + ex.Message);
            }

        }
aspx代码

                       <asp:GridView ID="gridpurchase" ShowFooter="True" AutoGenerateColumns="False" OnRowCommand="gridpurchase_RowCommand"  runat="server" DataKeyNames="Purchase_ID" OnRowDataBound="OnRowDataBound" CssClass="table table-bordered text-nowrap">

                            <Columns>

                                <asp:TemplateField HeaderText="Edit">
                                    <ItemTemplate>
                                        <asp:LinkButton ID="LinkButton5" runat="server" CssClass="btn btn-primary btn-xs" CausesValidation="False" CommandName="EditPurchase" Text=""><i class="glyphicon glyphicon-pencil"></i></asp:LinkButton>

                                    </ItemTemplate>
                                    <ControlStyle CssClass="btn btn-primary" />
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Delete">
                                    <ItemTemplate>
                                        <asp:LinkButton ID="LinkButton6" runat="server" CausesValidation="False" OnClientClick="return confirm('Are you sure you want to delete this record ?');" CssClass="btn btn-primary btn-xs" CommandName="DeletePurchase" Text="Delete"><i class="glyphicon glyphicon-trash"></i></asp:LinkButton>
                                    </ItemTemplate>
                                    <ControlStyle CssClass="btn btn-danger" />
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Print" ShowHeader="False">
                                    <ItemTemplate>
                                        <asp:LinkButton ID="LinkButton20" runat="server" CausesValidation="False" CommandName="PrintInvoice" CssClass="btn btn-primary btn-xs" Text=""><i class="glyphicon glyphicon-print"></i></asp:LinkButton>
                                    </ItemTemplate>
                                    <ControlStyle CssClass="btn btn-default " />
                                </asp:TemplateField>
                                <asp:BoundField HeaderText="Purchase ID" DataField="Purchase_ID" InsertVisible="False" ItemStyle-CssClass="hiddencol" HeaderStyle-CssClass="hiddencol" ReadOnly="True" SortExpression="Purchase_ID">
                                <asp:BoundField HeaderText="Purchase Date" HeaderText="Purchase Date">

                            </Columns>
                            <EmptyDataTemplate>
                                &quot;No records found&quot;
                            </EmptyDataTemplate>
                            <SelectedRowStyle BackColor="#D1DDF1" ForeColor="#333333" />
                        </asp:GridView> 

“未找到任何记录”

我认为在删除数据库中的记录后,您必须调用DataBind来更新网格。

请发布相关的aspx代码。如果您将页面加载代码的两行放在删除代码之后,网格内容不会更新?@Ayman它会起作用。你把代码放在哪里?把它放在switch语句后面。@Ayman-我和你一样惊讶。GridView是否在UpdatePanel中?如果没有,则可以在调试器中检查删除行后绑定数据时发生的情况。如果监视数据绑定事件,则可以查看网格的内容是否已实际更改。您将知道问题是显示未刷新,还是删除的行仍在网格中。