2013-06-27 43 views
0

我有我的ASP.NET Web應用程序的問題:頁不是從DB/ASP.NET的GridView刪除

我有一個GridView,顯示一個MDB數據庫中的「頁面」表中的行;在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

添加單擊事件。 –

回答

0

根據你的代碼存在delBut按鈕沒有點擊事件

您可以使用GridView控件RowCommand事件,因爲你的按鈕CommandName="Delete"

2

您可以使用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(); 

} 

} 

希望上面的代碼解決您的問題在你的按鈕

+0

不幸的是,上面的代碼不起作用。我也忘了提及,當我點擊刪除按鈕時,頁面刷新,但沒有Gridview,所以我不得不再次手動刷新。 – Fonzusys

+0

請分享你的代碼.aspx和.cs,我們必須看看爲什麼你的gridview不可見。 – Pawan