2012-09-21 162 views
0

我一直花費相當長的時間研究如何做到這一點,但沒有運氣。通過LinkBut​​ton從asp gridview刪除行

<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; 
} 
} 
+1

我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

dere是一個錯字「ataTable test = TargetedSpView.ToTable();」 – iJade

+0

你在哪一行出錯? – Agent007

回答

0
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; 
} 
}