我在编辑GridView行时遇到了一些问题,无法更改其背景颜色。我使用RowDataBound事件方法根据条件更改e.Row.BackColor来显示报告(根据结果有3种不同的颜色)。对于不符合该条件的行,单击编辑按钮时应用GridView的属性。然而,我似乎找不到一种方法来更改符合条件的行的颜色,因为RowDataBound似乎总是被调用,覆盖我所做的任何更改。有什么建议吗?
GridView1.EditRowStyle.BackColor = System.Drawing.Color.LightYellow;
尝试:
<asp:GridView runat="server" >
<Columns>
</Columns>
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#999999" />
</asp:GridView>
希望这可以帮到你。配置GridView行编辑。这应该是足够的信息。如果你需要更多,请告诉我。
protected void uxGrid_RowEditing(object sender, GridViewEditEventArgs e)
{
ClearBackColor();
GridViewRow row = uxGrid.Rows[e.NewEditIndex];
row.BackColor = Color.LightYellow;
}
private void ClearBackColor()
{
foreach (GridViewRow row in uxGrid.Rows)
{
row.BackColor = System.Drawing.Color.Transparent;
}
}
正如 @Rami 提到的,创建一个方法来循环遍历DataGrid行并更改颜色。在 PreRender 事件处理程序中调用此方法。这样,您就可以在每次回发时仅调用一次此方法。