私の Web サイトには、いくつかのデータを表示するために使用する Gridview を含むページがあります。RowDataBound イベントをキャプチャして、特定のテキストがセルに存在するかどうかを調べます。ある場合は緑に、そうでない場合は赤にします。
問題は次のとおりです。Gridview には水平のグリッド線しかありません。RowDataBound でセルの色を変更すると (実際にはクラスを変更しています)、グリッド線は適用された色になります。何を試しても元に戻すことはできません(すべてのセルをループして境界線の色を設定します)。助けてください。
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 2; i <= 3; i++)
{
if (e.Row.Cells[i].Text.Contains("monkey"))
{
e.Row.Cells[i].Attributes.Add("class", "monkey bold");
}
else
{
e.Row.Cells[i].Attributes.Add("class", "nomonkey bold");
}
}
}
}
スタイルは次のとおりです。
.monkey
{
color: #009900;
border-color: black;
}
.nomonkey
{
color: red;
border-color: black;
}
border-color プロパティは効果がないようです。
GridView は次のように定義されます。
<asp:GridView ID="GridView2" runat="server" AllowSorting="False" GridLines="Horizontal" AutoGenerateColumns="false" CellPadding="4" OnRowDataBound="GridView2_RowDataBound" OnDataBound="GridView2_DataBound" CssClass="reportGrid">
<FooterStyle BackColor="#2F76B8" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#2F76B8" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFFFF" ForeColor="#222222" HorizontalAlign="Center" />