表格中的单元格颜色变化C#

时间:2013-05-07 06:57:38

标签: c# asp.net background cell

ASP.NET Microsoft Visual Studio 10 - 我在设计视图25 x 25中创建了一个表。现在在页面加载时,我想将第1行第2个单元格BackColour的颜色更改为橙​​色。

我的桌子ID是“标签”。整个表格的背景在页面加载时不会改变。我收到这个错误:

  

指定的参数超出了有效值的范围。

如果我取出"tab1.Rows[1].Cells[2].BackColor = Color.Orange;"但表背景颜色仍不是紫色,则没有错误。

   Table tab1 = new Table();
   tab1.ID = "tab";

   tab1.BackColor = Color.Purple;
   tab1.Rows[1].Cells[2].BackColor = Color.Orange;

3 个答案:

答案 0 :(得分:1)

您正在创建新表

Table tab1 = new Table();

这不是您在设计师中添加的那个。

您需要找到设计师添加的表的ID并更改该表。转到设计器视图并检查表的ID。例如,如果是table1

table1.BgColor = "Purple";
table1.Rows[1].Cells[2].BgColor = "Orange";

如果这是asp.net应用程序,请确保在表中设置了runat ="server"

答案 1 :(得分:1)

Specified argument was out of the range of valid values.

错误即将发生,因为现在您的表格没有cell/ data

指定Row[1]cell[2]您的桌子需要Row[1]cell[2].

的颜色

因此,在为单元格指定颜色之前,请为表格datasource,然后尝试更改单元格的背景颜色。

假设ds是您的datasource 然后,

Table tab1 = new Table();
tab1.ID = "tab";
tab1.runat = "server";
tab1.DataSource = ds;
tab1.BackColor = Color.Purple;
tab1.Rows[1].Cells[2].BackColor = Color.Orange;

现在,如果您的数据源具有预期的数据,那么您将看到正面结果,

答案 2 :(得分:0)

只有在设置表DataSource后才存在行和单元格。如果你检查Rows.Count,你会看到它是0。 因此,设置DataSource,然后更改单元格的背景颜色。