【问题标题】:How can I access the page background-color property to change?如何访问要更改的页面背景颜色属性?
【发布时间】:2011-12-31 16:29:22
【问题描述】:

我有一个下拉列表,它列出了颜色。选择颜色后,我想更改页面本身的背景颜色。

我正在使用 Visual Studio 2008 和 VB.Net。

【问题讨论】:

  • 您是在寻找客户端解决方案 (javascript),还是要对服务器执行完整的回发?
  • 你可以尝试使用java脚本,或者你从下拉列表中选择后保存背景颜色,检查这个stackoverflow.com/questions/5068087/…

标签: asp.net vb.net visual-studio-2008 background-color


【解决方案1】:

你搜索了吗?

PageBody.Attributes("bgcolor") = "green"

确保将 body 元素设置为 runat ="Server"

<body id ="PageBody" runat ="server">

取自here

【讨论】:

    【解决方案2】:

    好吧,这里的代码可以在更改选择时更改组合框本身的背景颜色:

        Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        With ComboBox1
            Select Case .Text
                Case "red"
                    .BackColor = Color.Red
                Case "green"
                    .BackColor = Color.Green
                Case "blue"
                    .BackColor = Color.Blue
                Case Else
                    .BackColor = Nothing
    
            End Select
        End With
    End Sub
    

    如果你想改变整个winform的背景颜色,使用me.BackColor = ...

    【讨论】:

    • 我有选择和颜色值来改变颜色,我只是无法访问 VB.Net 中的页面(网站页面)背景颜色来实际改变颜色。这就是我要找的代码。
    • 抱歉,我错过了其中的网络部分。正在考虑winforms。 Moiz 为您提供答案。
    【解决方案3】:

    使用javascript:

    <select onChange="changeBackground()" id="myselect"><option></option><option value='black'>black</option></select>
    
    
    <script type="text/javascript">
    function changeBackground(){
       var select = document.getElementById("myselect");
       var color = select.options[select.selectedIndex].value;
       document.bgColor = color;
    }
    </script>
    

    【讨论】:

    • 请注意document.bgColordeprecated。相反,使用document.body.style.backgroundColor
    【解决方案4】:

    不知道为什么要对服务器进行完整的回发,以便更改页面的背景颜色,但这里是快速简便的客户端 javascript 解决方案。

    Working demo here.

    <!-- HTML -->
    <select id="sample">
       <option value="white">White</option>
       <option value="red">Red</option>
       <option value="yellow">Yellow</option>
       <option value="blue">Blue</option>
    </select>
    
    
    // JavsScript
    <script>
    
       document.getElementById("sample").onchange = function(){
          document.body.style.background = this.options[this.selectedIndex].value;
       }
    
    </script>
    

    或者,你可以按照你原来的思路去做the server-side way...但这似乎需要更多的工作。我想如果您需要将背景颜色存储在服务器端变量中以供其他用途(主题、个人偏好等)是有道理的......但客户端cookies往往是这种事情的更好地方。

    【讨论】:

      猜你喜欢
      • 2013-09-15
      • 2012-12-07
      • 1970-01-01
      • 2021-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      相关资源
      最近更新 更多