asp.net 渲染但不显示动态指定的样式

piwo6bdm  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(121)

我有一个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>

有什么建议吗?

jq6vz3qz

jq6vz3qz1#

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

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

或者在你的情况下:

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

相关问题