2012-01-26 4 views
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(); 
} 

답변

0

행을 삭제 한 후 사용자를 처음 페이지로 리디렉션 할 수 있습니다 (예 : RowDeleted 핸들러에서.

Response.Redirect(Request.RawUrl); 

삭제 작업은 현재 .aspx 페이지에 대한 POST 명령이기 때문에 작동합니다.

+0

예이 방법이 효과적입니다. 그러나 하나의 작은 것. delete 메서드가 실행될 때 표시되는 asp : 레이블이 있습니다. 그러나 페이지를 리디렉션해도 삭제 확인 레이블이 표시되지 않습니까? 삭제 방법이 실행될 때만 페이지를 다시로드 할 때 라벨을 어떻게 표시합니까? – HGomez90

+0

페이지로드 메소드에서 해당 매개 변수를 찾은 다음 URL 매개 변수가있는 경우 레이블을 활성화하는 것보다 페이지에 URL 매개 변수를 추가하십시오. – m0sa

+0

감사합니다. 감사 – HGomez90