Conflict between OnRowDataBound and OnSelectedIndexChanged

本文关键字:OnSelectedIndexChanged and OnRowDataBound between Conflict | 更新日期: 2023-09-27 18:15:46

我有一个Gridview,在OnRowDataBound事件上根据从网格中不可见的单元格中获取的#Colorcode着色。效果很好!

但是,一旦您选择了一行,颜色就会丢失,所选的行不再高亮显示,就像我添加OnRowDataBound事件之前一样。为了获得行再次着色我做了一个DataBind()上的GridView;为了突出选中的行,我手动设置了背景色。这适用于带颜色的行,但不会突出显示所选行。

如何实现选中的行被突出显示?马丁

protected void DisplayName_onselectedindexchanged(Object sender, EventArgs e)
{
    GridViewRow row1 = GridView02.SelectedRow;
    FormView02.Visible = true;
    GridView02.DataBind();
    row1.BackColor = System.Drawing.Color.FromName("#FFFF80");          
}

protected void PaintRows_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        string getValue = (e.Row.FindControl("Colorcode") as Label).Text;
        e.Row.BackColor = System.Drawing.Color.FromName(getValue);
    }
}

Conflict between OnRowDataBound and OnSelectedIndexChanged

您可以跳过所有这些逻辑,只使用SelectedRowStyle属性。

<SelectedRowStyle BackColor="#FFFF80" />  

你的问题是你在SelectedIndexChanged事件中重新绑定了GridView。如果你删除它,它应该可以正常工作