【问题标题】:Asp.net skin file Dynamically change classesAsp.net 皮肤文件动态更改类
【发布时间】:2013-06-21 11:16:04
【问题描述】:

我需要根据某些条件在 asp.net (visual basic) 中动态更改所有类。使用皮肤文件似乎合乎逻辑,但我不知道如何分配它。澄清一下,我需要类似下面的东西(伪代码):

if(button.clicked)
change class="makeRed makeBold"
to
class="makeBlue makeBold"

提前致谢!

【问题讨论】:

    标签: asp.net css class


    【解决方案1】:

    所有 ASP.NET 控件都有一个 .CssClass 属性。您应该能够将CssClass 属性设置为“makeRed makeBold”。

    【讨论】:

    • 我知道我可以做到,但问题是,我需要更改所有按钮/文本/文本框类。只更改一个属性会容易得多。
    • 这在 jQuery 中可能更容易做到。您可以找到具有给定类别的所有项目,然后对其进行更改。 api.jquery.com/class-selector
    • 是的,但是,我更喜欢 asp.net 或 css 中的解决方案,因为您需要启用 javascript 才能使 jquery 工作。
    • 这是一个值得关注的问题,但我宁愿花时间编写“请启用 JavaScript”消息,也不愿弄清楚如何在 jQuery 中做一些如此琐碎的事情。
    • 是的,我也愿意,但如果要使网站在没有 javascript 的情况下看起来不错,这是要求之一。 :/无论如何感谢您的回答,它可能对其他人有所帮助。
    【解决方案2】:

    我的理解是您想在运行时更改主题,这有点棘手。

    一种解决方案可以是:

    1. 创建一个保存当前主题值的会话变量
    2. 在按钮单击事件中为会话变量赋值。
    3. 在 Page_preInit 事件期间将此变量值分配给 Page.Theme 属性。
    4. 使用 server.transfer 方法停止页面加载并再次重新加载同一页面

      protected void Page_PreInit(object sender, EventArgs e)
      {
          string thm;
          thm = (string)Session["MyTheme"];
          if (thm != null)
          {
             Page.Theme = thm;
          }
          else
          {
             Session["MyTheme"] = "makeRed";
             Page.Theme = "makeRed";
          }
      }
      
      protected void btnCalculate_Click(object sender, EventArgs e)
      {
          Session["MyTheme"] = "makeBlue";
          Server.Transfer(Request.FilePath);
      }
      

    请查看this链接(虽然它是用c#编写的)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多