2010-12-10 2 views
0

이 코드를 삭제하는 방법 :지금까지의 GridView 행

<asp:TemplateField ShowHeader="False" ItemStyle-Width="150px" HeaderStyle-BackColor="#003ca1" HeaderStyle-ForeColor="white"> 
    <ItemTemplate> 
     <asp:LinkButton ID="linkDelete" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick='return confirm("Diesen Eintrag wirklich löschen?");' Text="Löschen" /> 
    </ItemTemplate> 
</asp:TemplateField> 

을이 순간에,의 GridView는 물리적으로 행을 삭제합니다. 이 코드를 CodeBehind에서 catch하고 삭제 작업을 취소하고 데이터베이스에서 "IsDeleted"-Flag 만 설정하려고합니다.

어떻게?

답변

1

GridDeleting 이벤트와 GridViewDeleteEventArgs 개체의 Cancel 속성을 사용하여이 작업을 수행 할 수 있습니다. 여기에 MSDN 페이지의 말씀입니다 :

RowDeleting 이벤트가 행의 삭제 버튼을 클릭 할 때 발생하지만, GridView 컨트롤하기 전에 행을 삭제합니다. 이를 통해이 이벤트가 발생할 때마다 삭제 작업 취소와 같은 사용자 지정 루틴을 수행하는 이벤트 처리 메서드를 제공 할 수 있습니다.

GridViewDeleteEventArgs 개체는 이벤트 처리 메서드에 전달됩니다.이 개체를 사용하면 현재 행의 인덱스를 결정하고 삭제 작업을 취소해야 함을 나타낼 수 있습니다. 삭제 작업을 취소하려면 GridViewDeleteEventArgs 개체의 Cancel 속성을 true로 설정하십시오. 값을 데이터 소스에 전달하기 전에 필요한 경우 Keys 및 Values ​​콜렉션을 조작 할 수도 있습니다.