【问题标题】:CSS call from code behind not working来自代码背后的 CSS 调用不起作用
【发布时间】:2011-01-24 20:57:08
【问题描述】:

我在 css 文件中有以下条目。

a.intervalLinks { font-size:11px; font-weight:normal; color:#003399; text-decoration:underline; margin:0px 16px  0px  0px; }  
a.intervalLinks:link { text-decoration:underline; }  
a.intervalLinks:hover { text-decoration:none; }  
a.intervalLinks:visited { text-decoration:underline; }  
a.selectedIntervalLink { font-size:12px; font-weight:bold; color:#003399; text-decoration:none; margin:0px 16px 0px 0px; }  
a.intervalLinks:active { text-decoration:underline; font-size:large ;  }

编辑试用:

a.big-link:link{}
a.big-link:visited {}
a.big-link:hover{}
a.big-link:active{font-size:1em;}

当我点击网页中嵌入的一些链接(未显示)时,我可以看到链接的变化

a.intervalLinks:active { text-decoration:underline; font-size:large ;

(链接的字体会变大)

但点击页面刷新后..更改将消失

我想在该链接中永久保留更改...即使有页面刷新

我明白..这只能通过asp.net背后的代码来实现

以下代码应该可以工作:但不幸的是它不是..有人可以帮忙吗?

protected override void OnInit(EventArgs e)
        {
            rptDeptList.ItemDataBound += new RepeaterItemEventHandler(rptDeptList_ItemDataBound);

        }

        void rptDeptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.DataItem == null)
                return;
            LinkButton btn = (LinkButton)e.Item.FindControl("LinkButton1");
            btn.Attributes.Add("class", "intervalLinks");  


        }

编辑试用:

   void rptDeptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.DataItem == null)
                    return;
                LinkButton btn = (LinkButton)e.Item.FindControl("LinkButton1");
                btn.Attributes.Add("class", "intervalLinks");  
                MyLinkButton.CssClass +=" big-link";

            }

链接的当前 html 代码如下所示:

<ItemTemplate>
<div class='dtilsDropListTxt'><div class='rightArrow' ></div>
<asp:LinkButton ID="LinkButton1" runat="server" Text=<%#DataBinder.Eval(Container.DataItem, "WORK_AREA")%>  
CssClass="intervalLinks" OnClick="LinkButton1_Click" ></asp:LinkButton>
</div>
</ItemTemplate>

有人可以帮忙吗?

【问题讨论】:

    标签: c# .net asp.net css code-behind


    【解决方案1】:

    在您访问过的链接伪选择器中,输入您想要查看的更改,例如

    mylink:visited{text-decoration: line-through;}

    【讨论】:

    • 它已经在那里了..见我的帖子 a.intervalLinks:active { text-decoration:underline;字体大小:大;
    • 看到这个:a.intervalLinks:visited { text-decoration:underline; }
    • 另外,我点击时需要更改..这里最关心
    • 我认为 pokrate 是对的。您需要更改链接的已访问状态的定义。页面刷新后,链接不再处于活动状态,这只是单击链接和页面刷新所需时间之间的短暂状态。之后,您需要定义访问状态。
    • 我没有得到实际,我需要编辑我的 css 类访问属性?你能在这里发帖吗,我需要编辑什么?
    【解决方案2】:

    您的代码中有几个错误。首先,MyLinkButton.CssClass += " big-link" 就是一个例子。在您的代码中,您没有名为MyLinkButton 的按钮。相反,您应该使用btn.CssClass += " big-link",因为btn 是您正在处理的按钮。

    其次,您的代码会将big-link 类附加到所有链接按钮,因为您没有条件来检查哪个按钮实际需要新类。当按下链接按钮时,您需要在 ViewState 中存储一个 Enum 或类似的东西,以便在转发器的 DataBound 事件中,您可以确定哪个链接按钮应该附加big-link 类。

    【讨论】:

      【解决方案3】:

      最简单的方法是创建一个全新的 CSS 类。单击该项目时,删除当前类并添加新类。您可以非常简单地使用 javascript 或 jquery 或代码隐藏来完成此客户端。前者将为您节省往返时间。

      【讨论】:

        猜你喜欢
        • 2014-03-01
        • 2017-11-13
        • 1970-01-01
        • 2018-09-20
        • 2013-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多