我需要将边框颜色和边框样式设置为动态创建的表格行。我怎么能这样做?
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,工作描述,工作指定,空缺职位空缺。我怎样才能实现这一目标?
请帮帮我。
答案 0 :(得分:1)
动态显示数据库表信息,而不使用任何控件
在ASP.NET中动态创建表
http://www.dotnetcurry.com/ShowArticle.aspx?ID=135&AspxAutoDetectCookieSupport=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>