Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表单重新提交将删除下一个GridView行_C#_Asp.net_Gridview - Fatal编程技术网

C# 表单重新提交将删除下一个GridView行

C# 表单重新提交将删除下一个GridView行,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个Gridview和OnRowDeleting方法,用于从数据库和Gridview中删除记录。 我的问题是,当用户单击Gridview中的delete按钮时,记录将从数据库中删除,但Gridview不显示此更新(不刷新)。如果用户随后刷新页面,导致表单重新提交,则GridView将删除原始删除行下方的行,如果再次刷新页面,则依此类推 我怎样才能防止这种情况发生 以下是我的gridview: <asp:GridView runat="server" ID="gvShowQuestion

我有一个
Gridview
OnRowDeleting
方法,用于从数据库和Gridview中删除记录。 我的问题是,当用户单击
Gridview
中的delete按钮时,记录将从数据库中删除,但
Gridview
不显示此更新(不刷新)。如果用户随后刷新页面,导致表单重新提交,则
GridView
将删除原始删除行下方的行,如果再次刷新页面,则依此类推

我怎样才能防止这种情况发生

以下是我的gridview:

<asp:GridView runat="server" ID="gvShowQuestionnaires" HeaderStyle-CssClass="table_header" CssClass="view" AlternatingRowStyle-CssClass="alt" AlternatingRowStyle-BackColor="#f3f4f8" AutoGenerateColumns="False" 
                DataKeyNames='QuestionnaireID' OnRowDeleting="gvShowQuestionnaires_RowDeleting" OnRowEditing="gvShowQuestionnaires_RowEdit" OnSelectedIndexChanged="gvShowQuestionnaires_SelectedIndexChanged" FooterStyle-CssClass="view_table_footer" >
    <Columns>
        <asp:BoundField DataField="QuestionnaireID" HeaderText="ID" HeaderStyle-Width="80px" ItemStyle-CssClass="bo"></asp:BoundField>
        <asp:BoundField DataField="QuestionnaireName" HeaderText="Questionnaire Name" />           
        <asp:ButtonField CommandName="select" ButtonType="Link" Text="hello" />
        <asp:CommandField HeaderText="Options" CausesValidation="true" ShowDeleteButton="True" ShowEditButton="true" EditText="Edit">
        </asp:CommandField>
    </Columns> 
</asp:GridView>

删除行后,您始终可以将用户重定向到初始页面,例如,在RowDeleted处理程序中

Response.Redirect(Request.RawUrl);

这应该可以工作,因为删除操作是当前.aspx页面的POST命令。

是,这可以工作。然而,有一件小事。我有一个asp:label,在触发delete方法时显示。但是,重定向页面时不显示删除确认标签?如何仅在触发delete方法时在页面重新加载时显示标签?向页面添加URL参数,然后在页面加载方法中查找该参数,并在URL参数存在时启用标签。
Response.Redirect(Request.RawUrl);