我有一个htmltable。表格的每个单元格由ID标识,例如0001等。该表没有固定的维度,但是是动态的,因此可以有20个或更多个单元格,具体取决于db中存储的值。我想改变特定单元格的文本框的backgorund颜色。但不知道如何访问该单元格。
我知道这种语法:
// the whole background becomes green
myTable.BgColor = "#008000";
// I see no changes
myTable.Rows[x].Column[y].BgColor = "#008000";
// I need a syntax like this
myTable.Cell(Id_cell).BgColor = "#008000";
答案 0 :(得分:0)
试试这个:
的.aspx:
<asp:Table ID="table" runat="server" />
C#代码:
TableRow row = new TableRow();
TableCell cell = new TableCell();
cell.Text = "Testing";
cell.BackColor = System.Drawing.Color.Red;
row.Cells.Add(cell);
table.Rows.Add(row);
table.Rows[0].Cells[0].BackColor = System.Drawing.Color.Pink;
答案 1 :(得分:0)
您可以像这样设置单个单元格的背景颜色:
myTable.Rows[0].Cells[1].BgColor = "#553322";
其中0是您想要的行号,在这种情况下,第一行和1是您想要的单元格编号,在这种情况下,第二个单元格作为索引来自0。这必须在表格呈现之前完成,例如在页面加载。
您可以将此概括为一种方法来设置id的单元格颜色,如下所示:
private void SetColorByCellId(HtmlTable table, string id, string color)
{
for (int i = 0; i < table.Rows.Count; i++)
{
for (int j = 0; j < table.Rows[i].Cells.Count; j++)
{
if (table.Rows[i].Cells[j].ID == id)
{
table.Rows[i].Cells[j].BgColor = color;
}
}
}
}
然后你会这样称呼:
SetColorByCellId(myTable, "0001", "#553322");