在没有runat =“server”的情况下操作HTML元素

时间:2012-02-21 15:09:53

标签: c# asp.net html webforms runatserver

看看这个;现在,这只是一厢情愿的想法。

Default.aspx的

<ul id="menuemenue" runat="server">
    <li><a href="www.google.com">google</a></li>
    <li><a href="www.yahooo.com">yahooo</a></li>
    <li><a href="www.stackoverflow.com">stackoverflow</a></li>
</ul>

Default.aspx.cs

    foreach (var item in menu.Elements("a"))
    {
        if (item.Attribute("href") == currentPageUrl)
        {
            item.addClass("selected");
        }
    }

我知道我可以通过编写自己的小HTML引擎(或任何你想称之为的)并操纵menu.innerHtml来实现这一点。但我有其他选择吗?

更新

我知道可以用javascript / jquery完成,并且有100种不同的方式。但是想象一下,如果你能像我的例子中那样做,你的c#代码会有多干净。

1 个答案:

答案 0 :(得分:2)

那么你可以应用服务器标签<%=[...]%>,它看起来像这样:

<li><a href="www.google.com" class='<%=1==1?"selected":""%>'>google</a></li>

除此之外,如果您只想通过代码隐藏,我担心您可能会失败。