2012-03-23 48 views
2

删除行我有这样我想在中继

protected void rptCategory_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
     { 
      DataRow dr = ((DataRowView)e.Item.DataItem).Row; 
      LinkButton lnkcoursename = (LinkButton)e.Item.FindControl("lnkCategory"); 
      Label lblcount = (Label)e.Item.FindControl("lblCount"); 
      string k = lnkcoursename.CommandArgument.ToString(); 
      if (k != "0") 
      { 
       TrainingCourse traningCourse = new TrainingCourse(); 
       int count = traningCourse.CourseCount(Convert.ToInt32(k), "", ""); 
       if (count == 0) 
       { 
        //This code is not working 
        dr.Delete(); 
        dr.AcceptChanges(); 
       } 
       else 
       { 
        lblcount.Text = "(" + count + ")"; 
       } 
      } 
    } 

代码现在我的问题是,如果我找到数= 0,那么我想从中继删除该行。我不想从数据库中删除它,然后重新绑定它......

+0

感谢asktomsk良好的工作........... – 2012-03-23 08:37:57

+0

接受的答案在这种情况下,请。 – asktomsk 2012-03-23 08:47:37

回答

10

您试图删除与数据源关联的行。 但是对于这个任务,只是隐藏的项目要好得多:

e.Item.Visible = false 
+1

对于任何一个有删除按钮的行,在点击事件中你可以做'((Button)sender).NamingContainer.Visible = false;'。然后当你循环所有的数据来保存它时,你可以删除所有不可见的'RepeaterItem'。 – 2013-12-23 20:35:37