使用C#向表格单元格添加颜色

时间:2011-07-21 07:14:17

标签: c# .net asp.net html

我正在创建一个表格并通过尖锐的代码添加包含内容的单元格。我的代码如下:

//creating the table
Table table1 = new Table();
table1.ID = "table1";
table1.BorderStyle = BorderStyle.Dashed;
table1.GridLines = GridLines.Both;
this.Controls.Add(table1);

//adding first row
TableRow row1 = new TableRow();

//adding first cell
TableCell cell1 = new TableCell();

//adding label
Label text1 = new Label();
text1.Text = "Sourav Ganguly";

cell1.Controls.Add(text1);
row1.Controls.Add(cell1);
table1.Controls.Add(row1);

//adding second cell
TableCell cell2 = new TableCell();

//adding label
Label text2 = new Label();
text2.Text = "Rahul Dravid";

cell2.Controls.Add(text2);
row1.Controls.Add(cell2);

//adding third cell
TableCell cell3 = new TableCell();

//adding label
Label text3 = new Label();
text3.Text = "Sachin Tendulkar";

cell3.Controls.Add(text3);
row1.Controls.Add(cell3);

//adding second row
TableRow row2=new TableRow();

//adding first cell
TableCell cell4 = new TableCell();

//adding label
Label text4 = new Label();
text4.Text = "Virender Shewag";

cell4.Controls.Add(text4);
row2.Controls.Add(cell4);
table1.Controls.Add(row2);

//adding second cell
TableCell cell5 = new TableCell();

//adding label
Label text5 = new Label();
text5.Text = "MS Dhoni";

cell5.Controls.Add(text5);
row2.Controls.Add(cell5);
table1.Controls.Add(row2);

//adding third cell
TableCell cell6 = new TableCell();

//adding label
Label text6 = new Label();
text6.Text = "Zaheer Khan";

cell6.Controls.Add(text6);
row2.Controls.Add(cell6);
table1.Controls.Add(row2);

我希望为每个单元格添加背景颜色。有可能创建这样的东西吗?即在第一行的第一个单元格中,我希望仅将红色添加到单元格的约50%。我希望细胞保持无色(通常为白色),剩下的50%。类似地,对于第一行的第二个单元格,我希望为80%的单元格添加黄色,并且我希望剩余的20%的单元格为默认的白色。是否有可能使用C#实现这种功能?

3 个答案:

答案 0 :(得分:1)

不完全正确,但您可以尝试通过将Text属性设置为以下内容来复制行为:

<div style="width:100px;height:20px">
  <div style="background-color:red;width:80%;height:20px"/>
  <div style="float:left">Hello</div>
</div>

当然,您需要更换硬编码的尺寸和颜色。

答案 1 :(得分:0)

如果您的%很大,则可以对单元格使用colspan属性并扩展特定颜色以表示图形。

另一种选择是包含1px图像,然后根据需要拉伸它。

类似的东西:

TableCell cell= new TableCell();
Image img = new Image();
img.ImageUrl = "image url";
img.Width=80; //this can represent 80%
cell.Controls.Add(img);

答案 2 :(得分:0)

这不是为了有效渲染而优化,但原理有效(CSS3):

//adding first row
TableRow row1 = new TableRow();

//adding first cell
TableCell cell1 = new TableCell();

//adding label
Label text1 = new Label();
text1.Text = "Sourav Ganguly";

//adding color
Integer perShaded = NUM;
cell1.Style = "background-image: url('color.gif'); background-size: " + perShaded + "% 100%;";

cell1.Controls.Add(text1);
row1.Controls.Add(cell1);
table1.Controls.Add(row1);