1
나는 Gridview
이고 OnRowDeleting
메서드는 데이터베이스와 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 방법입니다 :
여기 내있는 gridview입니다.
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();
}
예이 방법이 효과적입니다. 그러나 하나의 작은 것. delete 메서드가 실행될 때 표시되는 asp : 레이블이 있습니다. 그러나 페이지를 리디렉션해도 삭제 확인 레이블이 표시되지 않습니까? 삭제 방법이 실행될 때만 페이지를 다시로드 할 때 라벨을 어떻게 표시합니까? – HGomez90
페이지로드 메소드에서 해당 매개 변수를 찾은 다음 URL 매개 변수가있는 경우 레이블을 활성화하는 것보다 페이지에 URL 매개 변수를 추가하십시오. – m0sa
감사합니다. 감사 – HGomez90