当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET:以编程方式设置HTML元素的样式

如何解决《ASP.NET:以编程方式设置HTML元素的样式》经验,为你挑选了1个好方法。

我正在生成一个菜单,其中一个Repeater控件绑定到一个XmlDataSource.


    
        
    

 

我希望能够根据鼠标悬停事件和当前选择的菜单项设置包含LI的样式.我尝试通过HtmlGenericControl,但我收到一个错误,它是readonly.

protected void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                HyperLink hrefCurrentMenuLink = e.Item.FindControl("hrefMenuItem") as HyperLink;
                HtmlGenericControl l_genericControl = e.Item.FindControl("liMenu") as HtmlGenericControl;

                if ((hrefCurrentMenuLink != null) && (l_genericControl != null))
                {
                    string l_currentPage = GetCurrentWebPage();

                    if (String.Compare(Path.GetFileNameWithoutExtension(hrefCurrentMenuLink.NavigateUrl), l_currentPage, StringComparison.OrdinalIgnoreCase) == 0)
                        l_genericControl.Style = "on-nav";
                    else
                        l_genericControl.Style = "off-nav";

                    l_genericControl.Attributes.Add("onmouseover", "navOn(this)");
                    l_genericControl.Attributes.Add("onmouseout", "navOff(this)");
                }
            }
        }

有没有办法实现这个目标?



1> Michael Hare..:

style属性是一个集合.做这个:

l_genericControl.Style.Add("css-name", "css-value")

或者,如果您使用的是CSS类,则更改CssClass属性:

l_genericControl.CssClass = "on-nav";

如果您尝试使用javascript切换CSS类,请尝试这样的(未经测试):

l_genericControl.Attributes.Add("onmouseover", "this.className='on-nav';");
l_genericControl.Attributes.Add("onmouseout", "this.className='off-nav';");

如果你想用你的javascript更改样式,这可能有效:

l_genericControl.Attributes.Add("onmouseover", "this.style.color='red'; this.style.backgroundColor='yellow';");
l_genericControl.Attributes.Add("onmouseout", "this.style.color='black'; this.style.backgroundColor='none';");

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有