2013-07-18 28 views
1

我需要改进表格如何通过表行来排序

我使用C#向此表中添加行。

foreach (var item in items) 
      { 
       TableRow row = new TableRow(); 
       TableCell cell = new TableCell(); 
       LinkButton lb2 = new LinkButton(); 
       CheckBox chk = new CheckBox(); 
       chk.CssClass = "chkBox"; 
       lb2.CommandArgument = item.id.ToString(); 
       lb2.Text = item.cat_name; 
       lb2.ID = "lb" + item.id.ToString(); 
       lb2.Click += new EventHandler(lb_Click); 
       Label lbl = new Label(); 
       lbl.Text = "    "; 
       LinkButton lb3 = new LinkButton(); 
       lb3.CommandArgument = item.id.ToString(); 
       lb3.ID = "lb3" + item.id.ToString(); 
       lb3.Text = "Edit/Delete"; 
       lb3.Click += new EventHandler(lb2_Click); 
       cell.Controls.Add(chk); 
       cell.Controls.Add(lb2); 
       cell.Controls.Add(lbl); 
       cell.Controls.Add(lb3); 
       row.Cells.Add(cell); 
       tblitems.Rows.Add(row); 
      } 

现在我需要编写另一种方法,允许我在表中检查哪些复选框。这样我可以删除选中的行。

这就是我所拥有的。

protected void DeleteAll_Click(object sender, EventArgs e) 
    { 

     var mytable = (Table)FindControl("tblitems"); 

     foreach (TableRow row in mytable) 
     { 
      var myChkBox = (CheckBox)mytable.FindControl("chkBox"); 
      var myhiddenfield = (HiddenField)mytable.FindControl("hiddenID"); 

      if (myChkBox.Checked) 
      { 
       //Delete record 
       Response.Write("Record" + myhiddenfield.Value + "Has been deleted"); 
      } 

     } 

    } 

我得到一个错误 foreach statement cannot operate on variables of type 'System.Web.UI.WebControls.Table' because 'System.Web.UI.WebControls.Table' does not contain a public definition for 'GetEnumerator'

+0

它应该是'mytable.Rows' – asawyer

回答

6

您需要引用表中的行属性。

foreach (TableRow row in mytable.Rows) 
相关问题