动态分配的样式被渲染但不显示

Dynamically assigned Styles are rendered but not displayed

提问人:Barnabeck 提问时间:9/9/2023 更新时间:9/9/2023 访问量:22

问:

我有一个 GridView,我想在 RowDataBound 事件期间根据单元格的值分配行的背景颜色。我愿意:

    protected void Gridview_OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.Cells[1].Text == "0")
            {
                e.Row.Style.Add("BackColor", "yellow");
            }
            TextBox txbx = e.Row.FindControl("Txt_Criteria") as TextBox;
            txbx.Style.Add("BackColor", "yellow");
        }
    }

这两个表达式都不起作用......至少,尽管代码已构建,但一切都保持白色,正如我在源文件中看到的那样。

<tr style="font-size:11px;BackColor:yellow;">
<input name="GridView_$ctl14$Txt_Criteria" type="text" id="GridView_Txt_Criteria_12" style="BackColor:yellow;" />

为了检查对其他样式定义的任何干扰,我删除了所有样式引用,但结果保持不变。

<asp:GridView ID="GridView_Criteria" runat="server" DataKeyNames="ID" AutoGenerateColumns="false" OnRowDataBound="Gridview_OnRowDataBound">
    <RowStyle Font-Size="11px" />
            <Columns>

有什么建议吗?

C# CSS asp.net GridView

评论

2赞 ralph.m 9/9/2023
BackColor:yellow;不是 CSS。尝试background-color:yellow;

答:

1赞 Albert D. Kallal 9/9/2023 #1

好吧,你至少得到了一个奖品,因为你的代码是正确的,但你的css有点错误。

试试这个:

e.Row.Style.Add("background-color","lightsteelblue");

或者就您而言:

e.Row.Style.Add("background-color", "yellow");