
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();这行代码注释掉,就正常显示行颜色了 展开
<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();这行代码注释掉,就正常显示行颜色了 展开
1个回答
展开全部
你好,永远是求知者
如果你只是想实现单机行变色,不妨通过jquery来实现,这样的例子已经有了,请参看:
http://www.aspsnippets.com/Articles/Change-Gridview-Row-Color-OnClick-without-PostBack-in-ASPNet.aspx
如果你只是想实现单机行变色,不妨通过jquery来实现,这样的例子已经有了,请参看:
http://www.aspsnippets.com/Articles/Change-Gridview-Row-Color-OnClick-without-PostBack-in-ASPNet.aspx
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询