1

我有一些表格数据,当标签具有某些特定值时,我需要让它炫耀。尝试通过样式化 TD 来做到这一点。我的 C# 将值设置为Label1.text

你能想到其他方法吗?它引发了歧义错误。

 <% if (Label1.Text == "1") { %>
            <td style="background:#ffedad; border:#e3a345; color:#cd5c0a"><asp:Label ID="Label1" runat="server" /></td>
 <% }  else {%>
      <td><asp:Label ID="Label1" runat="server" /></td>
 <% } %>

编辑

做了其他事情(和更清洁)。

处理变量后面的一些代码以及td.alt我的 css 文件中的一些新代码以获取标签的值。如果是1,那么我设置一个 classLabel变量alt,然后我只是设置class里面td

<td class="<%classLabel%>"><asp:Label ID="Label1" runat="server" /></td>

不过,我在我的 aspx 页面的最后一行出现错误,有什么想法是错误的吗?

4

2 回答 2

1

您可以调用 code behind 方法,该方法将返回可以由浏览器直接呈现的格式化 HTML 字符串。在该方法背后的代码中,您几乎可以做任何事情:访问任何类型的数据库或任何业务逻辑。

可能返回封装内容的 div 元素(无样式)。您可以通过在代码隐藏方法中使用 if-else 逻辑来返回具有不同 id 或类的 div。然后你可以编写不同的 CSS 样式来应用到不同的 div 上。

<% if (Label1.Text == "1") { %> 
        <td style="background:#ffedad; border:#e3a345; color:#cd5c0a">
        <%# generateOutput() %></td> 
<% }  else {%> 
  <td> <%# generateOutput() %> </td> 
<% } %>

而不是在 asp.net 标记中使用 if-else,您可以简单地拥有

<%# generateOutput() %>

并从后面的代码中返回全部内容并在 CSS 文件中编写样式。

如果要显示的内容不太复杂,则第二种方法将起作用,否则您可能更喜欢第一种方法。

但是,如果您直接从数据库访问数据,您可以使用 GridView 等 ASP.NET 数据控件,在模板中设置样式,还可以使用查询字符串或表单值过滤数据。

于 2012-10-05T13:20:18.037 回答
1

你可以用一行来试试这个:

<td <%=Label1.Text != "1"?"":"style='background:#ffedad; border:#e3a345; color:#cd5c0a'"%>><asp:Label ID="Label1" runat="server" /></td>

恕我直言,在后面设置样式代码并使用 css 类会更干净

希望这会有所帮助

于 2012-10-05T13:21:06.203 回答