如何使用链接按钮删除数据

时间:2014-10-05 06:12:44

标签: c# devexpress aspxgridview

我有一个带有数据库源的附件数据网格。 列是:查看|文件名|去掉。

如何删除链接按钮上的数据行?目前,数据行仅从数据网格中删除,而不是从数据库中删除。

<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();
    }
}

1 个答案:

答案 0 :(得分:0)

从datagridview中删除行不会影响数据库中的数据表。您需要编写一个查询来从数据库中删除数据..

如果您正在使用sql,请尝试获取链接按钮事件上的主键或任何唯一列,并实现删除行的命令..

就像

链接按钮点击事件

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

要删除的查询

delete from your table
where pKey = foo;