У меня есть Gridview
и метод OnRowDeleting
с удалением записи из базы данных и gridview. Моя проблема в том, что когда пользователь нажимает кнопку удаления в Gridview
, запись будет удалена из базы данных, но GridView
не отображает это обновление (не обновляется). Если пользователь затем обновляет страницу, вызвав повторную отправку формы, тогда 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>
Вот метод OnRowDeleting.
protected void gvShowQuestionnaires_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int questionnaireID = (int)gvShowQuestionnaires.DataKeys[Convert.ToInt32(e.RowIndex)].Value;
GetData.DeleteQuestionnaire(questionnaireID); // Deletes Questionniare from database
gvShowQuestionnaires.DataSource = DT;
gvShowQuestionnaires.DataBind();
}
Да, это действительно работает. Однако одна мелочь. У меня есть asp: label, отображаемый при запуске метода удаления. Однако перенаправление страницы не отображает метку подтверждения удаления? Как показать ярлык на странице перезагрузки только при запуске метода удаления? – HGomez90
Добавьте параметр URL-адреса на страницу, чем найдите этот параметр в методе загрузки страницы и включите метку, если был указан параметр URL. – m0sa
Спасибо. благодаря – HGomez90