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

4
我在编辑GridView行时遇到了一些问题,无法更改其背景颜色。我使用RowDataBound事件方法根据条件更改e.Row.BackColor来显示报告(根据结果有3种不同的颜色)。对于不符合该条件的行,单击编辑按钮时应用GridView的属性。然而,我似乎找不到一种方法来更改符合条件的行的颜色,因为RowDataBound似乎总是被调用,覆盖我所做的任何更改。有什么建议吗?

RowDataBound 只有在绑定 Gridview 时才会被调用,但您不需要在每个 postback 上都进行绑定。您必须将您的条件保存在某个地方(数据库或 Viewstate 中)。然后您可以在 RowDataBound 中设置 Backcolor。 - Tim Schmelter
5个回答

13
在网格行编辑事件中编写一行代码。
GridView1.EditRowStyle.BackColor = System.Drawing.Color.LightYellow; 

1

尝试:

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

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

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;
    }
}

0
为什么不编写自己的逻辑方法来更改行的背景颜色?循环遍历行,这样就可以避免postback问题...也许!

0

正如 @Rami 提到的,创建一个方法来循环遍历DataGrid行并更改颜色。在 PreRender 事件处理程序中调用此方法。这样,您就可以在每次回发时仅调用一次此方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接