【问题标题】:Manipulate HTML Elements without runat="server"在没有 runat="server" 的情况下操作 HTML 元素
【发布时间】:2012-03-11 21:39:34
【问题描述】:

看看这个;现在只是一厢情愿。

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# 代码会有多干净。

【问题讨论】:

  • 你只是想对其应用 CSS 吗?
  • 好吧,在这个例子中,我想给它上课。但它更多的是关于操作没有 runat="server" 属性的 HTML 元素的概念。
  • 你必须在服务器端做吗?
  • 我不得不问,为什么不能在所有列表项中添加runat="server"
  • 听起来你想看看 ASP.NET MVC。

标签: c# asp.net html webforms runatserver


【解决方案1】:

你可以应用服务器标签&lt;%=[...]%&gt;,看起来像这样:

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

除此之外,如果您只想通过代码隐藏进行操作,恐怕您可能会不走运。

【讨论】:

  • 好的,我想我需要自己编写必要的代码:/ 认为当我完成后有人会对它感兴趣吗?还是我是一个想要那样做的怪胎?
猜你喜欢
  • 2013-12-03
  • 1970-01-01
  • 2012-06-09
  • 2014-08-04
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多