我的ASP.NET Web应用程序出现问题:
我有一个Gridview,它显示mdb数据库中“Pages”表的行;在id旁边,标题是两个按钮,编辑和删除。编辑按钮完美运行时,删除按钮将无法正常工作。我在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,所以我必须再次手动刷新。
答案 0 :(得分:2)
您可以使用 RowCommand 和 CommandArgument ,请查看以下代码示例
<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();
}
}
希望上面的代码能解决您的问题
答案 1 :(得分:0)
根据您的代码,delBut按钮中没有点击事件
您可以在gridview中使用RowCommand
事件,因为按钮CommandName="Delete"