问题描述
我在 UserName 列上有一个带有 LinkButton 的 GridView。在那个 LinkButton 点击一些关于用户的详细信息。
- 我希望用户名看起来像一个没有下划线的标签,没有蓝色的默认颜色,并且在单击 LinkButton 后没有颜色变化。
- 属于当前用户的行应该显示为红色
我用 css 实现的第一部分:
<asp:LinkButton ID="LB_UserName" runat="server" OnClick="ShowUserInfo" CommandArgument='<%# Bind("UserID") %>' CssClass="LB_Special">
<asp:Label runat="server" Text='<%# Bind("UserName") %>' ID="LabelNombre" /></asp:LinkButton>
和CSS:
.LB_Special {text-decoration: none;}
a.LB_Special {color:black;}
a.LB_Special:visited {color:black;}
我想用 OnRowDataBount 事件实现的第二部分:
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[0].Text == LabelUserRegistrationID.Text)
{
e.Row.ForeColor = Color.Red;
}
}
这不起作用,因为 LinkButton Color 保持在 css 中的定义并且不会被此方法否决。
我终于想出了这两种可能性:
- 我没有更改属于当前用户的行的 ForeColor,而是使用 BackGround 颜色突出显示它:e.Row.BackColor = Color.Yellow;
- 我添加了该 LinkButton 控件的副本,使用不同的样式定义将 a 和 a.visited 的颜色设置为红色,然后根据 RowDataBound 事件中的当前用户为这两个控件之一提供可见性。
由于美观,我不喜欢第一个选项。选项 2 需要如此多的额外代码(标记、Css、代码隐藏)才能完成如此简单的事情。 难道没有另一种方法可以禁用 LinkButton 控件的颜色更改行为吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)