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);
}
}
您可以跳过所有这些逻辑,只使用SelectedRowStyle属性。
<SelectedRowStyle BackColor="#FFFF80" />
你的问题是你在SelectedIndexChanged
事件中重新绑定了GridView。如果你删除它,它应该可以正常工作