【问题标题】:Changing Gridview row background color when editing?编辑时更改 Gridview 行背景颜色?
【发布时间】:2011-04-29 07:47:20
【问题描述】:

我在编辑 gridview 行的背景颜色时遇到了一些问题。

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

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

有什么建议吗?

【问题讨论】:

  • RowDataBound 仅在您 DataBind 您的 Gridview 时调用,但您不需要在每次回发时绑定它。您必须将您的标准保存在某处(在数据库或视图状态中)。然后你可以在 RowDataBound 中设置 Backcolor 。

标签: c# asp.net gridview colors


【解决方案1】:

在 Grid RowEditing 事件中写一行:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      试试:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-05-02
            • 2020-06-12
            • 1970-01-01
            • 2012-05-25
            • 2015-08-31
            • 2021-09-03
            • 2013-06-28
            相关资源
            最近更新 更多