asp.net(C#):单击GridView改变行颜色,鼠标单击一行,行颜色闪一下就还原为默认的颜色了

前台GridView代码:<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"Hori... 前台GridView代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" HorizontalAlign="Center"
Width="100%" DataKeyNames="不合格品编号" OnRowCommand="GridView1_RowCommand" OnRowDataBound="GridView1_RowDataBound">

<Columns>

......
<asp:TemplateField>
<HeaderStyle CssClass="hide" />
<ItemStyle HorizontalAlign="Center" CssClass="hide"></ItemStyle>
<ItemTemplate>
<asp:LinkButton runat="server" ID="btnDetial" CommandName="Detail" CommandArgument='<%# Eval("不合格品编号") %>'>辅助列</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>

后台代码:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("OnClick", "ClickEvent('" + e.Row.Cells[5].FindControl("btnDetial").ClientID + "',this)");
}
}
前台脚本代码:
<script type="text/javascript">
var selectRow = null;
function ClickEvent(cId, row) {
//调用LinkButton的单击事件,btnBindData是LinkButton的ID
document.getElementById(cId).click();

row.style.backgroundColor = "#99CCFF";
if (selectRow == row) {
return;
}
if (selectRow != null) {
selectRow.style.backgroundColor = "#FFFFFF";
}
selectRow = row;
}
</script>

但是,如果把document.getElementById(cId).click();这行代码注释掉,就正常显示行颜色了
展开
 我来答
百度网友72ef19b43
2014-06-11 · TA获得超过474个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:348万
展开全部
你好,永远是求知者

如果你只是想实现单机行变色,不妨通过jquery来实现,这样的例子已经有了,请参看:
http://www.aspsnippets.com/Articles/Change-Gridview-Row-Color-OnClick-without-PostBack-in-ASPNet.aspx
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式