根据从网格中不可见的单元格中取出的#Colorcode,我有一个在OnRowDataBound事件上着色的Gridview。这完美无缺!
但是一旦你选择了一行,颜色就会丢失,选定的行不会再突出显示,就像我添加OnRowDataBound事件之前一样。为了让行再次着色,我在GridView上做了一个DataBind();要突出显示所选行,我手动设置Backcolor。这适用于彩色行,但不会突出显示所选行。
如何突出显示所选行? 马丁
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);
}
}
答案 0 :(得分:0)
您可以跳过所有这些逻辑,只使用SelectedRowStyle属性。
<SelectedRowStyle BackColor="#FFFF80" />
您的问题是您在SelectedIndexChanged
事件中重新绑定了GridView。如果删除它,它应该可以正常工作。