2013-11-23 88 views
0

我需要根据从网格视图从数据表中删除现有行

我试图使它选定值从数据表中删除一行,但我失败了

protected void GV_Repair_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 
    var row = GV_Repair.Rows[e.RowIndex];        
    newdt.Rows.Remove();  
    bind_grid(); 
} 
+0

你有什么错误? –

回答

0

如果你有一个静态数据源,你可以这样做:

protected void GV_Repair_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{  
    newdt.Rows.RemoveAt(e.RowIndex);  
    bind_grid(); 
} 

如果数据源是动态的,你会需要隐藏字段在GridView的模板字段(如果你没有的话):

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:HiddenField ID="hdnId" runat="server" Value='<%# Eval("ID") %>' /> 
     <!-- Other Items --> 
    </ItemTemplate> 
</asp:TemplateField> 

和更改的行删除方法:

protected void GV_Repair_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{  
    int id = 0; 
    GridViewRow row = GV_Repair.Rows[e.RowIndex]; 
    HiddenField hdnId = row.FindControls("hdnId") as HiddenField; 

    if(hdnId != null && int.TryParse(hdnId.Value, out id) 
    { 
     //Logic to delete from table where Id = id 

    } 

    bind_grid(); 
} 
+0

我的数据源是动态的:( – user2743401

+0

你能发布GridView标记吗? – afzalulh

+0

我已经更新了我的答案。 – afzalulh