【问题标题】:Page not deleting from DB/Gridview ASP.NET页面未从 DB/Gridview ASP.NET 中删除
【发布时间】:2013-06-24 15:54:03
【问题描述】:

我的 ASP.NET Web 应用程序出现问题:

我有一个 Gridview,它显示 mdb 数据库上“Pages”表的行; id 和标题旁边是两个按钮,Edit 和 Delete。虽然编辑按钮工作正常,但删除按钮不起作用。我在 delPagina(删除页面)方法的开头放置了断点,似乎这种方法根本没有运行。这是 Gridview 代码:

<asp:GridView ID="grdPagine" CssClass="table table-condensed"     BackImageURL="../media/img/hbg.png" runat="server" AutoGenerateColumns="false"     OnRowDeleting="delPagina">
<Columns>
    <asp:BoundField DataField="id" HeaderText="ID" />
    <asp:BoundField DataField="titolo" HeaderText="Titolo" />
    <asp:TemplateField>
        <ItemTemplate>
            <a href="EditPagina.aspx?idPag=<%# Eval("id") %>" class="btn btn-warning">Modifica</a>
            <asp:Button ID="delBut" runat="server" CssClass="btn btn-danger"   CommandName="Delete" Text="Elimina" />
            </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>

还有delPagina方法:

 public int delPagina(int _id)
    {
        Data.DB.OleDbDatabase db = new Data.DB.OleDbDatabase();
        string query = "DELETE FROM pagine WHERE id="+ _id;
        return db.EseguiNonQuery(query);
    }

事件:

protected void delPagina(object sender, GridViewDeleteEventArgs e)
    {
            int id = int.Parse(this.grdPagine.Rows[e.RowIndex].Cells[0].Text);
            int b = new PaginaService().delPagina(id);
            List<Pagina> pag = new PaginaService().mlistapagine();
            this.grdPagine.DataSource = pag;
            this.grdPagine.DataBind();
    }

对不起,如果我的术语有点不对劲,但这对我来说是一个新词。 提前致谢

编辑:当我点击按钮时,页面刷新但没有显示gridview,所以我必须手动再次刷新。

【问题讨论】:

  • 在按钮中添加点击事件。

标签: c# asp.net


【解决方案1】:

您可以使用 RowCommandCommandArgument,请查看以下代码示例

<asp:GridView ID="grdPagine" CssClass="table table-condensed"     BackImageURL="../media/img/hbg.png" runat="server" AutoGenerateColumns="false"  OnRowCommand=grdPagine_RowCommand"    OnRowDeleting="delPagina">
<Columns>
    <asp:BoundField DataField="id" HeaderText="ID" />
    <asp:BoundField DataField="titolo" HeaderText="Titolo" />
    <asp:TemplateField>
        <ItemTemplate>
            <a href="EditPagina.aspx?idPag=<%# Eval("id") %>" class="btn btn-warning">Modifica</a>
            <asp:Button ID="delBut" runat="server" CssClass="btn btn-danger"   CommandName="Delete" Text="Elimina" CommandArgument='<%# Bind("id") %>' />
            </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>

并在代码后面声明

protected void grdPagine_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
            {
int id = Convert.ToInt32(e.CommandArgument);
            int b = new PaginaService().delPagina(id);
            List<Pagina> pag = new PaginaService().mlistapagine();
            this.grdPagine.DataSource = pag;
            this.grdPagine.DataBind();

}

}

希望以上代码能解决您的问题

【讨论】:

  • 很遗憾,上面的代码不起作用。我还忘了提到,当我点击删除按钮时,页面会刷新,但没有 Gridview,所以我必须再次手动刷新。
  • 请分享你的代码.aspx和.cs,我们要看看为什么你的gridview不可见。
【解决方案2】:

根据您的代码,delBut 按钮中没有点击事件

你可以在gridview中使用RowCommand事件,因为你的按钮CommandName="Delete"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多