代码之家  ›  专栏  ›  技术社区  ›  SmartestVEGA

来自代码隐藏的CSS调用不工作

  •  1
  • SmartestVEGA  · 技术社区  · 15 年前

    我在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>
    

    有人能帮忙吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   user276449    15 年前

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

        2
  •  1
  •   pokrate    15 年前

    在链接的已访问的伪选择器中,键入要查看的更改,如

    mylink:已访问文本装饰:line-through;

        3
  •  1
  •   Jason Berkan whiteproud    15 年前

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

    其次,您的代码将附加 big-link 类到所有链接按钮,因为您没有检查哪些按钮实际需要新类的条件。当按下链接按钮时,需要在视图状态中存储枚举或类似的内容,以便在中继器的数据绑定事件中,可以确定哪个链接按钮应该具有 大链接 附加到它的类。