编辑时更改Gridview行背景颜色?

时间:2010-10-22 18:23:21

标签: c# asp.net gridview colors

在编辑时编辑gridview行的背景颜色时遇到了一些麻烦。

问题是,我正在使用RowDataBound事件方法根据显示报告时的条件更改e.Row.BackColor(3种不同的颜色取决于结果)。对于不符合该条件的行,单击“编辑”按钮时将应用GridView的属性<EditRowStyle BackColor="#999999" />

但是,我似乎无法找到一种方法来改变那些符合标准的颜色,因为RowDataBound似乎一直被调用,覆盖了我所做的任何更改。

有什么建议吗?

5 个答案:

答案 0 :(得分:13)

在Grid RowEditing事件中写一行:

GridView1.EditRowStyle.BackColor = System.Drawing.Color.LightYellow; 

答案 1 :(得分:1)

希望这会有所帮助。配置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;
    }
}

答案 2 :(得分:1)

尝试:

<asp:GridView runat="server" >
    <Columns>
    </Columns>

    <EditRowStyle BackColor="#999999" />    
    <SelectedRowStyle BackColor="#999999" /> 
</asp:GridView>

答案 3 :(得分:0)

为什么不编写自己的逻辑方法来改变行的颜色?,循环遍历行,这可以避免回发问题......也许!

答案 4 :(得分:0)

正如@Rami所说,创建一个循环DataGrid行并更改颜色的方法。在PreRender事件处理程序中调用此方法。这样每次回发都会调用此方法。