在asp.net中动态更改div背景

时间:2014-05-23 20:40:55

标签: asp.net

我知道我可以使用以下内容更改div的CSS:

MyDiv.CSSClass = "MyClass"

但是,我想弄清楚的是如何动态抓取Div然后执行此操作。

我有一个被调用的函数,它将根据结果值(整数)更改div的背景颜色。功能是这样的:

Public Sub ReadValue (Tag, DivID)

我将Div的ID传递给DivID参数。既然这是一个字符串而不是一个实际的对象,那么我将如何更改类?

我很困惑:)看起来很容易,但我在互联网上找不到任何东西来帮助我搞清楚。

提前感谢。


以下是实际代码:

样式表代码:

.container {width: 100%;
background: transparent;
max-width: 1000px;
min-width: 1000px;margin:0 auto;min-height: 200px;}
.table-left{
float:left;
width:400px;
border: 1px solid #000;
min-height:100px;
}
.mtable-left{
float:left;
width:299px;
border-bottom: 1px solid #000;
border-right: 1px solid #000;
min-height:50px;
}
.mtable-left-right{
float:right;
width:100px;
border-bottom: 1px solid #000;
min-height:50px;
text-align: center;
font-weight: bold;
}
.table-right{
float:right;
width:400px;
border: 1px solid #000;
min-height:100px;
}
.legend-left{
float:left;
width:550px;
border: 1px solid #000;
min-height:100px;
}

.mlegend-left{
float:left;
width:299px;
border-bottom: 1px solid #000;
border-right: 1px solid #000;
min-height:30px;
text-align:center;
}
.mlegend-leftc{
float:left;
width:99px;
border-bottom: 1px solid #000;
border-right: 1px solid #000;
min-height:30px;
text-align:center;
}
.mlegend-leftv{
float:left;
width:150px;
border-bottom: 1px solid #000;
min-height:30px;
text-align:center;
}

.arges {clear:both;}
.yellow{background:yellow;}
.red{background:red;}
.blue{background:blue;}
.green{background:green;}
.gray{background:gray;}

HTML代码

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="index.aspx.vb" Inherits="overheads_default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="styletest.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="True" runat="server">

    </asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="tmrRefreshSchiwaStatus" runat="server" Interval="30000">
</asp:Timer>
<asp:Timer ID="AlertRefresh" runat="server" Interval="1000" Enabled="false"></asp:Timer>    
<div class="container" runat="server">
<div class="table-left" runat="server">
   <div class="mtable-left" runat="server"></div>
   <div class="mtable-left-right" runat="server">Status</div>

   <div class="mtable-left" runat="server">Conv. Sys 1A</div>
   <div class="mtable-left-right gray" id="Status1" runat="server"></div>

   <div class="mtable-left" runat="server"></div>
   <div class="mtable-left-right" runat="server"></div>

   <div class="mtable-left" runat="server">SRM 61</div>
   <div class="mtable-left-right red" id="Status2" runat="server"></div>

   <div class="mtable-left" runat="server"></div>
   <div class="mtable-left-right" runat="server"></div>

   <div class="mtable-left" runat="server">SRM 62</div>
   <div class="mtable-left-right yellow" id="Status3" runat="server"></div>

   <div class="mtable-left" runat="server"></div>
   <div class="mtable-left-right" runat="server"></div>

    <div class="mtable-left" runat="server">Conv. Sys 1B</div>
   <div class="mtable-left-right green" id="Status4" runat="server"></div>

   <div class="mtable-left" runat="server"></div>
   <div class="mtable-left-right" runat="server"></div>

    <div class="mtable-left" runat="server">SRM 63</div>
   <div class="mtable-left-right red" id="Status5" runat="server"></div>

   <div class="mtable-left" runat="server"></div>
   <div class="mtable-left-right" runat="server"></div>

    <div class="mtable-left" runat="server">SRM 64</div>
   <div class="mtable-left-right blue" id="Status6" runat="server"></div>


</div>
<div class="table-right">
<div class="mtable-left"></div>
   <div class="mtable-left-right">Status</div>
<div class="mtable-left">Layer Picker</div>
   <div class="mtable-left-right gray" id="Status7" runat="server"></div>

   <div class="mtable-left"></div>
   <div class="mtable-left-right"></div>

   <div class="mtable-left">Wrapper 1</div>
   <div class="mtable-left-right red" id="Status8" runat="server"></div>

   <div class="mtable-left"></div>
   <div class="mtable-left-right"></div>

   <div class="mtable-left">Wrapper 2</div>
   <div class="mtable-left-right yellow" id="Status9" runat="server"></div>

   <div class="mtable-left"></div>
   <div class="mtable-left-right"></div>

    <div class="mtable-left">Wrapper 3</div>
   <div class="mtable-left-right green" id="Status10" runat="server"></div>

   <div class="mtable-left"></div>
   <div class="mtable-left-right"></div>

    <div class="mtable-left">T-Car</div>
   <div class="mtable-left-right gray" id="Status11" runat="server"></div>

   <div class="mtable-left"></div>
   <div class="mtable-left-right"></div>

    <div class="mtable-left">Spare</div>
   <div class="mtable-left-right red" id="Status12" runat="server"></div>

</div>
<div class="arges"></div>
<br/>
<br/>
<b>Legend</b>
<br/>
<div class="legend-left">
    <div class="mlegend-left">Tag Value</div>
    <div class="mlegend-leftc">Color</div>
    <div class="mlegend-leftv">Desc.</div>

    <div class="mlegend-left">1</div>
    <div class="mlegend-leftc yellow"></div>
    <div class="mlegend-leftv">Idle</div>

    <div class="mlegend-left">2</div>
    <div class="mlegend-leftc green"></div>
    <div class="mlegend-leftv">Running</div>

    <div class="mlegend-left">3</div>
    <div class="mlegend-leftc blue"></div>
    <div class="mlegend-leftv">Faulted</div>

    <div class="mlegend-left">4</div>
    <div class="mlegend-leftc gray"></div>
    <div class="mlegend-leftv">Manual/Maint.</div>





</div>
<div class="arges"></div>




</div>
 </ContentTemplate>
</asp:UpdatePanel>      
    </form>
</body>
</html>

此外,我尝试了以下代码:

Status3.Attributes("CSSClass") = "mtable-left-right blue"

1 个答案:

答案 0 :(得分:1)

您可以通过实际控制,而不是传递字符串ID,例如如果您将子定义为

Public Sub ReadValue(Div As WebControl)

    Div.Attributes("class") &= " MyClass"

End Sub

您可以将其称为

ReadValue(MyDiv)

或者如果您愿意 - 您可以将ID传递给定义为

的子
Public Sub ReadValue(DivId As String)

    Dim Div As WebControl = FindControl(DivId)
    Div.Attributes("class") &= " MyClass"

End Sub

在这里,您使用FindControl函数按ID查找DIV,因此您可以调用它

ReadValue("MyDiv")

请注意,如果您的DIV位于容器控件内 - 您可以使用指示嵌套级别的替代FindControl调用,例如FindControl(DivId, 1)