C# Can';t更改代码隐藏(.net)中的Dropdownlist.backcolor

C# Can';t更改代码隐藏(.net)中的Dropdownlist.backcolor,c#,asp.net,C#,Asp.net,我在gridview中有一个下拉列表 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_OnRowDataBound" EnableModelValidation="True" > <Columns> <asp:TemplateField HeaderText="Y_N">

我在gridview中有一个下拉列表

  <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_OnRowDataBound" EnableModelValidation="True" >
    <Columns>
    <asp:TemplateField HeaderText="Y_N">
            <ItemTemplate>
            <asp:Label ID="lblGetSub" runat="server" Text='<%# Eval("GetSub")%>' Visible = "false"></asp:Label>
            <asp:DropDownList ID="DropDownList1" runat="server" OnSelectedIndexChanged="GridView1_OnSelectedIndexChanged"  AutoPostBack="True" >
            </asp:DropDownList>
            </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:GridView>
我在这个网站上找到了这4个解决方案

ddl.BackColor = System.Drawing.ColorTranslator.FromHtml("blue");
 ddl.Style["BackColor"] = "blue";
 ddl.Style.Add("backcolor", "blue");
 ddl.Attributes.CssStyle.Add("backcolor", "blue");
但是只要
ddl.BackColor=System.Drawing.ColorTranslator.FromHtml(“蓝色”)工作正常


有人能告诉我为什么其余的3个不起作用吗

这是因为其他人直接设置或修改元素的CSS样式属性,而
backcolor
不是有效的CSS属性,而是
background color

第一个命令直接修改服务器端DropdownList对象的属性。然后,当控件呈现给浏览器时,这会影响.NET代码创建HTML元素的方式-此值将被转换为浏览器可以理解的元素上的有效CSS样式属性。您可以通过浏览器的“查看源代码”功能检查页面的呈现源代码,以查看其输出方式

如果您使用正确的CSS属性,则其他命令可能会起作用,例如:

ddl.Attributes.CssStyle.Add("background-color", "blue");

将CSS属性的参数从
“backcolor”、“blue”
更改为
“background color”、“blue”
!这是工作。谢谢。这对我帮助很大。下次我将检查浏览器上的“查看源代码”以获取有效的CSS属性。谢谢,没问题。那是个好主意。当然,您也可以在线查看CSS文档,以发现所有可能性:-)
ddl.Attributes.CssStyle.Add("background-color", "blue");