如何设置动态创建的表行的属性?

时间:2013-08-07 04:55:19

标签: c# html asp.net

我需要将边框颜色和边框样式设置为动态创建的表格行。我怎么能这样做?

if (cmd.Connection.State == ConnectionState.Closed)
                cmd.Connection.Open();
            using (SqlDataReader reader = cmd.ExecuteReader())

            {

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {

                        JobDesignation = reader.GetString(0);
                        JobDescription = reader.GetString(1);
                        NoOfVacancies = Convert.ToString(reader.GetInt32(2));
                        DatePosted = Convert.ToString(reader.GetDateTime(3)).Replace("00:00:00", "");
                        jobId = reader.GetString(4);
                        int tblRows = 1;
                        int tblCols = 1;

                        Table tbl = new Table();
                        PlaceHolder1.Controls.Add(tbl);
                        for (int i = 0; i < tblRows; i++)
                        {
                            TableRow tr = new TableRow();

                            for (int j = 0; j < tblCols; j++)
                            {
                                TableCell tc = new TableCell();
                               System.Web.UI.WebControls.Label lblBox = new System.Web.UI.WebControls.Label();
                               lblBox .Text = "Job ID:" + jobId + Environment.NewLine + "Job Designation:" + JobDesignation + Environment.NewLine + "Job Description:" + JobDescription + Environment.NewLine + "Vacancies:" + NoOfVacancies + Environment.NewLine + "Ad Posted On:" + DatePosted + "";
                               tc.Controls.Add(lblBox);
                               tr.Cells.Add(tc);
                            }

                            tr.Width = new Unit("700px");
                            tr.Height = new Unit("200px");
                            tr.BorderColor = System.Drawing.Color.Black;
                            tr.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
                            tbl.Rows.Add(tr);

                        }
                        ViewState["dynamictable"] = true; 
                      } reader.NextResult();

                }

            }

我还想在单独的行中显示工作ID,工作描述,工作指定,空缺职位空缺。我怎样才能实现这一目标?

请帮帮我。

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您可以动态设置属性,如下所示:

    TableRow row1 = new TableRow();
    row1.CssClass = "rowStyle1";

    TableCell cell1 = new TableCell();
    cell1.CssClass = "cellStyle1";


//create css class as below in your css file :

.rowStyle{
    border:1px solid red;
}
.cellStyle1{
    background-color:blue;
}

答案 2 :(得分:1)

尝试使用LiteralControl

for (int j = 0; j < tblCols; j++)
{
   TableCell tc = new TableCell();
   tc.Controls.Add(new LiteralControl("Job ID:" + jobId + "<br>" + "Job Designation:" + JobDesignation + "<br>" + "Job Description:" + JobDescription + "<br>" + "Vacancies:" + NoOfVacancies + "<br>" + "Ad Posted On:" + DatePosted + ""));
   tr.Cells.Add(tc);
}

答案 3 :(得分:0)

好吧,如果你在谈论风格,我强烈建议你使用CSS。请尝试在CSS类中包含相应的行。在单独的CSS文件中,您可以根据需要设置该类的属性。

关于你的第二个问题我建议你用一个单元格创建一个新行并将其colspan设置为tblCols。您可以在以下情况之后立即执行此操作:

tbl.Rows.Add(tr);

希望有所帮助,

答案 4 :(得分:0)

由于这是动态的,我将假设使用css类中定义样式的典型建议不会在这里完成工作 - 否则简单的解决方案是设置你的css类(总是推荐的方法)

如果它们无法预先定义且风格各异,则表继承WebControl,因此您可以使用Table.Style,您可以将所有样式定义添加到 - ex:http://msdn.microsoft.com/en-us/library/system.web.ui.cssstylecollection.aspx

使用上面的代码会发生什么?你的标记是什么样的? TD可以覆盖TR边框样式(ex row border color),但您没有设置任何上述样式。

对于你的第二个问题: 要在单独的一行显示,请使用css进行显示:阻止,以便每个项目都显示在一个新行上 - 例如:How make 2 lines in <TD>