2012-09-21 102 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; 
} 
}