J'ai GridView avec la sélection activée. Certaines colonnes dans GridView ont CssClass ensemble, définissant leur couleur de fond. En outre, SelectedRowStyle est défini dans GridView.SelectedRowStyle ne change pas BgColor de cellules avec le style CSS défini
Problème: après sélection de la ligne, sa couleur d'arrière-plan est modifiée comme défini dans SelectedRowStyle, à l'exception des colonnes ayant son propre ensemble CssClass. Leur couleur d'arrière-plan reste inchangée et j'aimerais que toutes les colonnes de la ligne sélectionnée aient la même couleur (définie dans SelectedRowStyle). Je utilise VS2008 et .NET Framework 3.5.
GridView:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"
OnRowDataBound="GridView1_RowDataBound" AllowPaging="True" PageSize="50" CssClass="gv"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnPageIndexChanged="GridView1_PageIndexChanged"
DataKeyNames="Name" RowStyle-Wrap="False">
<RowStyle Font-Names="Calibri" Font-Size="Small" BackColor="White" ForeColor="#333333" />
<SelectedRowStyle BackColor="#336699" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Model" HeaderText="Model" SortExpression="Model" />
<asp:BoundField DataField="Qty" HeaderText="Qty" SortExpression="Qty" />
<asp:BoundField DataField="Type" HeaderText="Type" SortExpression="Type" />
<asp:BoundField DataField="Level" HeaderText="Level" SortExpression="Level" ItemStyle-CssClass="bglightred" />
<asp:BoundField DataField="Log" HeaderText="Log" SortExpression="Log" ItemStyle-CssClass="bglightred" />
</Columns>
CSS:
.gv td.bglightred
{
background-color: #FF8080;
}
.gv tr:hover td
{
background-color: #CCCCCC;cursor: default;
}
code:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(GridView1, "Select$" + e.Row.RowIndex.ToString()));
}
}