匿名向asp表添加控件

本文关键字:添加 控件 asp | 更新日期: 2023-09-27 17:53:04

我想匿名执行以下功能。我应该怎么做-

            TableRow tr = new TableRow();
            TableCell tc = new TableCell();
            Label lbl = new Label();
            lbl.Text = link;
            tc.Controls.Add(lbl);
            tr.Cells.Add(tc);
            tblMain.Rows.Add(tr);

更新

和我们一样-

tblMain.Rows.Add(new TableRow(/* Here I will add a TableCell */))

匿名向asp表添加控件

没有匿名方法可以实现您想要的功能。

最接近你的是类初始化程序,你在问题中提到过:

tblMain.Rows.Add(new TableRow() { Property = "SomeValue" })

类初始化程序允许您做的是上面一行中看到的{ }内容。因此,您可以在较少的代码行中添加控件,但实际上您并没有获得任何东西,但这是一种偏好。

编辑:

作为对在一行代码中这样做的评论的回应,让我在这里停止。你需要从更大的角度来看——你认为一行代码对另一个开发人员来说有多容易理解,如果你不在身边,他们可能不得不照顾这些代码?

还要考虑调试。如果你正在遍历代码,其中一个控件出现问题,那么将鼠标悬停在变量名上会更容易、更方便,然后你必须用一行代码来理解,并尝试通过即时/本地窗口来挖掘属性。

相信我,我以前处理过这样的代码,最终的结果是我想找到负责的开发人员,并将他们的手放在设置为170C的George Foreman烤架上。

如果你是唯一一个看过这段代码的开发人员,那就足够公平了。然而,就我所见,没有办法将这些代码重构为一行代码。

假设您的意思是自主:由于您可以创建一个表行,因此代码可以正常工作。要创建多个,请使用for循环。

int iterationTimes = 10;
for (int i = 1; i <= iterationTimes ; i++)
{
    TableRow tr = new TableRow();
    TableCell tc = new TableCell();
    Label lbl = new Label();
    lbl.Text = link;
    tc.Controls.Add(lbl);
    tr.Cells.Add(tc);
    tblMain.Rows.Add(tr);
}
//Declare a new table and add it as child of tdparent
        Table table1 = new Table();
        table1.ID = "tablename";
        table1.Style.Add(HtmlTextWriterStyle.Width, "auto");
        tdparent.Controls.Add(table1);

        //Decalre a new table row and add it as child of tableskills
        TableRow tr1 = new TableRow();
        tr1.ID = "tr1Skills";
        table1.Controls.Add(tr1);
        CompanyBAL objBAL = new CompanyBAL();
        int id;

        if (ddlFunctional.SelectedValue == "All")
        {
            id = -99;
        }
        else
        {
            id = Convert.ToInt32(ddlFunctional.SelectedValue.ToString());
        }
        DataSet ds = objBAL.GetSkillSets(id);
        for (int i = 0; i < ds.Tables[1].Rows.Count; i++)
        {
            TableCell td = new TableCell();

            td.ID = "td" + ds.Tables[1].Rows[i]["skilltype"].ToString();
            td.Style.Add(HtmlTextWriterStyle.VerticalAlign, "top");
            td.Style.Add(HtmlTextWriterStyle.Width, "auto");

            tr1.Controls.Add(td);

            // add CheckBoxList to tabelCell
            CheckBoxList cbl = new CheckBoxList();

            cbl.ID = "cbl" + ds.Tables[1].Rows[i]["skilltype"].ToString();
            cbl.Style.Add(HtmlTextWriterStyle.Width, "auto");

            td.Controls.Add(cbl);
        }
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            TableCell tbCell = ((TableCell)tr1.FindControl("td" + ds.Tables[0].Rows[i]["skilltype"].ToString()));
            CheckBoxList cb= ((CheckBoxList)tbCell.FindControl("cbl" + ds.Tables[0].Rows[i]["skilltype"].ToString()));
            cb.Items.Add(new ListItem(ds.Tables[0].Rows[i]["skillname"].ToString(), ds.Tables[0].Rows[i]["skillname"].ToString()));
        }

您可以添加表控件和表内的控件