代码之家  ›  专栏  ›  技术社区  ›  Eton B.

编辑时是否更改网格视图行背景色?

  •  4
  • Eton B.  · 技术社区  · 14 年前

    我在编辑网格视图行的背景色时遇到一些问题。

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

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

    有什么建议吗?

    5 回复  |  直到 11 年前
        1
  •  12
  •   Leo user370469    13 年前

    在网格行编辑事件中写入一行:

    GridView1.EditRowStyle.BackColor = System.Drawing.Color.LightYellow; 
    
        2
  •  1
  •   abatishchev Karl Johan    14 年前

    希望这有帮助。配置网格视图行编辑。这应该是足够的信息。如果你还需要的话,告诉我。

    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;
        }
    }
    
        3
  •  1
  •   abatishchev Karl Johan    14 年前

    尝试:

    <asp:GridView runat="server" >
        <Columns>
        </Columns>
    
        <EditRowStyle BackColor="#999999" />    
        <SelectedRowStyle BackColor="#999999" /> 
    </asp:GridView>
    
        4
  •  0
  •   Rami Alshareef    14 年前

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

        5
  •  0
  •   Josh Crozier HBP    11 年前

    正如@rami所说,创建一个方法来循环遍历数据报行并更改颜色。在PreRender事件处理程序中调用此方法。这样,每次回发时都会调用此方法。