为了账号安全,请及时绑定邮箱和手机立即绑定

onmouseover和onmouseout

标签:
JavaScript

如果你曾看过这篇,http://www.cnblogs.com/insus/articles/1411057.html ,它是在GridView控件中演示,但是它的方法在Repeater控件是无法复制的。
由于看到论坛上有网友问及,花上一点点时间做了Repeater控件的演示。首先看看效果(动画结束,尝试刷新网页):


 

为了能在Repeater控件上实现onmouseover和onmouseout样式,Insus.NET想只要控到表的行即可,在Repeater控件的OnItemCreated事件中去实现,需要分别写好ItemTemplate模版与AlternatingItemTemplate模版,另外还注意的地方,就是把tr转为web控件,这样好在cs好找到。

.aspx(部分):

5acf073b0001405b00110016.jpgView Code  <asp:Repeater ID="Repeater1" runat="server" OnItemCreated="Repeater1_ItemCreated">
            <HeaderTemplate>
                <table border="1" cellpadding="3" cellspacing="0">
                    <tr>
                        <td>
                            MediaTypeId
                        </td>
                        <td>
                            TypeName
                        </td>
                        <td>
                            Description
                        </td>
                        <td>
                            IsActive
                        </td>
                        <td>
                            CreateDate
                        </td>
                    </tr>
            </HeaderTemplate>            
            <ItemTemplate>
                <tr id="itl" runat="server">
                    <td>
                        <%# Eval("MediaTypeId") %>
                    </td>
                    <td>
                        <%# Eval("TypeName")%>
                    </td>
                    <td>
                        <%# Eval("Description")%>
                    </td>
                    <td>
                        <%# Eval("IsActive")%>
                    </td>
                    <td>
                        <%# Eval("CreateDate")%>
                    </td>
                </tr>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <tr id="att" runat="server">
                    <td>
                        <%# Eval("MediaTypeId") %>
                    </td>
                    <td>
                        <%# Eval("TypeName")%>
                    </td>
                    <td>
                        <%# Eval("Description")%>
                    </td>
                    <td>
                        <%# Eval("IsActive")%>
                    </td>
                    <td>
                        <%# Eval("CreateDate")%>
                    </td>
                </tr>
            </AlternatingItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>

 

.aspx.cs(部分),有一点需要留意的是,首先获取行的BackColor,这样好的Mouse out时,回复原来的Color:

5acf073b0001405b00110016.jpgView Code  protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item)
        {
            if (e.Item.FindControl("itl") != null)
            {
                HtmlTableRow htr_itl = (HtmlTableRow)e.Item.FindControl("itl");
                ApplyStyle(htr_itl, htr_itl.BgColor);
            }
        }

        if (e.Item.ItemType == ListItemType.AlternatingItem)
        {
            if (e.Item.FindControl("att") != null)
            {
                HtmlTableRow htr_att = (HtmlTableRow)e.Item.FindControl("att");
                ApplyStyle(htr_att, htr_att.BgColor);
            }
        }
    }

    private void ApplyStyle(HtmlTableRow htr, string trBackColor)
    {
        string onmouseoverStyle = "this.style.backgroundColor='Peachpuff'";
        string onmouseoutStyle = "this.style.backgroundColor='@BackColor'";

        htr.Attributes.Add("onmouseover", onmouseoverStyle);
        htr.Attributes.Add("onmouseout", onmouseoutStyle.Replace("@BackColor", trBackColor));

    }

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消