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'

4

2 回答 2

6

您需要引用表的 Rows 属性。

 foreach (TableRow row in mytable.Rows)
于 2013-07-18T17:48:06.343 回答
3

Bill 的回答将修复您的代码,但您可能需要考虑使用 Repeater 或 GridView 来创建与数据源关联的表格数据。GridView 已经支持一些基本的编辑/删除等。

这是一个显示其一些用法的链接:http: //www.dotnetspider.com/resources/44926-GridView-Edit-Cancel-Update-Delete-ASP.net.aspx

于 2013-07-18T18:01:25.303 回答