【问题标题】:Delete row from asp gridview via a LinkButton通过 LinkBut​​ton 从 asp gridview 中删除行
【发布时间】:2012-09-21 13:46:36
【问题描述】:

我花了很长时间研究如何做到这一点,但没有运气。

<asp:GridView runat="server" ID="TBDSPCGrid"
                    AutoGenerateColumns="false"
                    AllowPaging="true"
                    AllowSorting="false"
                    DataKeyNames="SPID,CategoryId,Category,RowNum, PurchaseDate, Title, Description,SFItemId" 
                    OnRowDataBound="TBDSPC_RowDataBound"
                    OnRowCreated="TBDSPC_RowCreated"
                    OnRowCommand="TBDSPC_Command"
                    OnPageIndexChanging="TBDSPC_PageIndexChanging"
                    OnRowDeleting="TBDSPC_OnRowDeleting">
                    <Columns>
                        <asp:TemplateField HeaderText="Timeouts" ItemStyle-Width="40px" ItemStyle-Wrap="false"
                            ItemStyle-CssClass="padding-right">
                            <ItemTemplate>
                                <div class="targeted-icons">
                                    <asp:LinkButton runat="server" id="LinkButton1" CommandName="delete" CommandArgument='<%#Eval("SFItemId")%>'
                                    ><img src="delete.png" /></asp:LinkButton>
                                </div>
                            </ItemTemplate>
                        </asp:TemplateField>

那我该怎么办呢?

protected void TBDSPCGrid_OnRowDeleting(object     sender, GridViewDeleteEventArgs e)
    {
        // do something
    }

我试过了,但它不起作用......它给了我一个错误“对象引用未设置为对象的实例”

protected void TBDSPC_Command(object sender, GridViewCommandEventArgs e)
    {
        GridView gv = (GridView)sender;
        switch (e.CommandName)
        {
            case "delete":
                {
                    DataTable test = TargetedSpView.ToTable();
                    test.Rows[0].Delete();
                    test.AcceptChanges();
                    TargetedSpView = test.DefaultView;
                    this.TBDSPCGrid.DataSource = this.TargetedSpView;
                    this.TBDSPCGrid.DataBind();
                }
                break;
}
}

【问题讨论】:

标签: c# gridview


【解决方案1】:
protected void TBDSPC_Command(object sender, GridViewCommandEventArgs e)
{
    GridView gv = (GridView)sender;
    switch (e.CommandName)
    {
        case "delete":
            {
                    DataTable test = RetrieveData(0, 0); // this is a function I used to get a datatable
                    test.Rows[0].Delete();
                    test.AcceptChanges();
                    TargetedSpView = test.DefaultView;
                    TBDSPCGrid.DataSource = TargetedSpView;
                    TBDSPCGrid.DataBind();
            }
            break;
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多