如何在运行asp.net页面时以编程方式设置表格背景?

我有一个aspx页面,默认情况下有一种背景颜色。 我需要能够在选择单选按钮的某个选项时以编程方式更改它。 我尝试设置表的ID字段,但我似乎无法在我的C#代码隐藏文件中访问它。

我原来的表是:

不过,我在智能感知中看不到身份证。

编辑:
现在,我可以在我的代码后面看到我的表,我正在尝试实际更改背景颜色。 这是我的radiobuttonlist的代码:

      

我正在访问我在事件处理程序中设置的断点,但背景颜色在回发时没有变化。 如果选择的项目是Pending,那么我想将背景颜色更改为不同的颜色。 如果他们将单选按钮更改为“打开”或“已关闭”,则我希望确保背景颜色为默认值。

编辑2:
我的事件处理程序中的代码非常简单:

 if (rdoStatus.SelectedValue == "181003") { tblSheet.BgColor = "#ff9a9a"; } else { tblSheet.BgColor = "#99ccff"; } 

runat="server"放在表标记中

完成后,您将能够以编程方式访问该表。

要直接更改背景颜色,请尝试:

 if (rdoStatus.SelectedValue == "181003") { tblSheet.Style.Add("background-color", "#ff9a9a"); } else { tblSheet.Style.Add("background-color", "#99ccff"); } 

如果您正在使用样式表,请尝试以下方法:

 if (rdoStatus.SelectedValue == "181003") { tblSheet.CssClass = "default_color" } else { tblSheet.CssClass = "other color" } 

您是否直接从单选按钮触发将进行此更改的回发?
这是目前唯一发生变化的事情吗?

如果两者的答案都是“是”,那么你应该考虑在javascript中完成所有操作并完全跳过回发:

  

这里的原因是,与将所有内容保存在客户端上相比,回发速度非常慢,并且它们也会损害您的Web应用程序轻松扩展的能力(当然,更多的服务器工作对可伸缩性来说是不利的)。 因此,对用户来说速度更快,服务器的工作量也减少了。

但是,在将服务移出服务器时,您需要注意不要丢失禁用javascript的用户的function。 但是如果你的单选按钮已经触发了这个回发,那么你已经依赖于这个function的javascript。

我搞定了!
我将表更改为以下(我删除了背景颜色):

 

然后在我的代码后面我在Page_Load中设置背景颜色,而不是回发:

 tblSheet.Bgcolor = "#99ccff"; 

瞧! radiobuttonlist和事件处理程序与问题中的相同。 回发正在将颜色改回原来的颜色。 谢谢大家的帮助!

首先你看不到表格,因为表格中没有runat =“server”属性可以让你看到ID,其次你甚至无法改变表格的颜色,即使你看到了表格中的表格。你的代码。 即使您将访问表的属性并在那里设置颜色也不会对您有所帮助,因为您需要再次回发以查看更改。

您需要做的是使用“更新”面板并使用变量而不是#FF9900,这样默认颜色将为红色或任何颜色,在选中复选框时,您会将值更改为绿色或其他颜色。

就像Joel所说,如果你只需要改变颜色,但是如果你将表转换为服务器控件(在表中使用runat = server或其他服务器控件),JavaScript是一个更好的解决方案,不要忘记使用嵌入式代码块在getElementById中检索表id,因为ASP.NET在呈现页面时重命名id。

在乔尔的例子中,它看起来像: