使用Classic Asp变量更新CSS

时间:2016-01-22 02:50:31

标签: html css asp-classic

我有一个经典的ASP页面。在这个页面上,我需要根据填充该表的数据库是否返回任何结果来隐藏表。如果表为空,则隐藏标题。 <table>没有visibledisplay元素,因此我将其包装在<div>中。但是,当页面执行时,不会应用css。

enter image description here

.hideDiv {
    display: <%=vis%>;
}


<div class="hideDiv">
    <table>
    <!-- Table elements -->
<%

' Other code
If count > 0 Then
    vis = "block"
Else
    vis = "none"
End If
' The vis variable is not updated past this point

%>

</table>
</div>

3 个答案:

答案 0 :(得分:2)

我认为你有几个选择。 这是一种老式的方法。

选项1: 不要让CSS确定您的表的显示或隐藏,而是使用 If Count&gt; 0 做工作服务器端。

If count > 0 Then
Response.Write("<table>" & vbCrLf)
'# Do you Table Tags and your code here. 
Response.Write("</table>" & vbCrLf)
End If

如果您必须为脚本编写CSS,则通常需要编写两次脚本,这样您就可以正确地将CSS嵌入到标题中。

选项2: 放在标题中。

<%
Dim vis
If count > 0 Then
   vis = "block"
Else
   vis = "none"
End If

Response.Write("<style type=""text/css"">" & vbCrLf)
Response.Write(" .hideDiv {" & vbCrLf)
Response.Write("    display: "&vis&";" & vbCrLf)
Response.Write("}" & vbCrLf)
Response.Write("</style>" & vbCrLf)
%>

然后你可以将你的桌子放在身体里。

<div class="hideDiv">
    <table>
    <!-- Table elements -->


</table>
</div>

选项3: 您可以内联您的CSS并使其工作。或者至少它应该只要您的代码设置vis。

    <%
    Dim vis
    If count > 0 Then
       vis = "block"
    Else
       vis = "none"
    End If
   %>

<div style="display:<%=vis%>;">
    <table>
    <!-- Table elements -->


</table>
</div>

在ASP Classic中,我们经常需要编写一个小脚本来检查我们的表数据是否存在。如果您没有将功能放在功能或子呼叫中,请记住从左到右,从上到下。

计数&gt; 0需要触发CSS的构建,因此它可以包含对<Div>元素的vis 如果您在运行SQL后获得了Count值,那么您可能需要设置第二个脚本来测试您是否拥有表的数据然后构建CSS。 示例:

Function MyCount()
Dim Count
Count = 0
SQL = SELECT Top 1 ID FROM Table WHERE FIELD1 Is Not NULL
'# blah 
If rs.EOF=False Then
count = 1
End If
MyCount = count
End Function

然后我们可以将上面的示例混合在一起,只有当我们有一个表要显示时才触发。

<header>
<%  
If MyCount() = 1 Then
    Dim vis
       vis = "block"
Else
       vis = "none"
End If
%>
</header>

在身体中你可以使用以下内容。

<div style="display:<%=vis%>;">
    <table>
    <!-- Table elements -->
</table>
</div>

在你的帖子中,你实际上是在调用&lt;%= vis%&gt;在你设置它之前。 从上到下,从左到右,重新排序代码。

答案 1 :(得分:0)

您应将下面的代码放在顶部,然后再次测试:

If count > 0 Then
    vis = "block"
Else
    vis = "none"
End If

答案 2 :(得分:0)

以下代码在我的电脑中运行良好

<%

' Other code
If count > 0 Then
    vis = "block"
Else
    vis = "none"
End If
' The vis variable is not updated past this point

%>

.hideDiv {
    display: <%=vis%>;
}


<div class="hideDiv">
    <table>
    <!-- Table elements -->


</table>
</div>