2014-10-05 4 views
0

데이터베이스 소스가있는 첨부 파일 데이터 그리드가 있습니다. 열은 다음과 같습니다.보기 | 파일 이름 | 풀다.링크 버튼을 사용하여 데이터를 제거하는 방법

링크 버튼을 클릭 할 때 데이터 행을 어떻게 제거합니까? 현재 데이터 행은 데이터 그리드에서만 삭제되지만 데이터베이스에서는 삭제되지 않습니다.

<dx:ASPxGridView ID="gvwAttachmentFileOld" runat="server" KeyFieldName="Id" Width="520px" OnLoad="gvwFileAttachmentOld_Load" OnRowCommand="gvwAttachmentFileOld_RowCommand1"> 
<Columns> 
    <dx:GridViewDataTextColumn ReadOnly="True" VisibleIndex="0" Caption="Action" Width="50px"> 
     <DataItemTemplate> 
      <asp:LinkButton ID="btnDownloadGridOld" runat="server" Text="View" OnClick="btnDownloadGridOld_Click"></asp:LinkButton> 
     </DataItemTemplate> 
    </dx:GridViewDataTextColumn> 
    <dx:GridViewDataTextColumn Caption="Id" FieldName="Id" Visible="false" VisibleIndex="1"></dx:GridViewDataTextColumn> 
    <dx:GridViewDataTextColumn Caption="File Name" FieldName="FileName" Width="450px"></dx:GridViewDataTextColumn> 
    <dx:GridViewDataTextColumn ReadOnly="True" VisibleIndex="4" Caption="Action" Width="50px"> 
     <DataItemTemplate> 
      <asp:LinkButton ID="btnHapusItemGridOld" runat="server" Text="Remove" CommandName="RemoveRow" CommandArgument='<%# DataBinder.Eval(Container, "DataItem.Id") %>'></asp:LinkButton> 
     </DataItemTemplate> 
    </dx:GridViewDataTextColumn>             
</Columns> 
</dx:ASPxGridView> 

protected void gvwAttachmentFileOld_RowCommand1(object sender,  DevExpress.Web.ASPxGridView.ASPxGridViewRowCommandEventArgs e) 
{ 
    if (e.CommandArgs.CommandName == "RemoveRow") 
    { 
    DataTable dtAttOld = (DataTable)Session["dtOld"]; 
    for (int i = 0; i < gvwAttachmentFileOld.VisibleRowCount; i++) 
    { 
     var id = e.CommandArgs.CommandArgument; 
     string idx = Convert.ToString(id); 

     DataRow[] dr = dtAttOld.Select(String.Format("Id = '{0}'", String.IsNullOrEmpty(idx) ? "0" : idx)); 

     if (dr != null) 
     { 
      dtAttOld.Rows.Remove(dr[0]); 
      dtAttOld.AcceptChanges(); 
     } 
    } 
    Session["dtOld"] = dtAttOld; 
    LoadGridAttachment(); 
    } 
} 
+0

당신은'LoadGridAttachment'를 제공 할 수 있습니까? – Grundy

답변

0

datagridview에서 행을 제거해도 데이터베이스의 데이터 테이블에는 영향을주지 않습니다. 데이터베이스에서 데이터를 제거하는 쿼리를 작성해야합니다.

sql을 사용하는 경우 링크 버튼 이벤트에서 기본 키 또는 고유 한 열을 가져 와서 행을 제거하는 명령을 구현하십시오. 링크 버튼을 클릭 이벤트가

int foo = int.Parse(yourDataGridView.SelectedRows[0].Cells[0].Value.ToString()); 

쿼리 삭제

처럼

그것은 것

delete from your table 
where pKey = foo; 
관련 문제