在运行时设置TD(取决于Label.text)

时间:2012-10-05 12:52:28

标签: asp.net

我有一些表格数据,当标签有一些特定值我需要让它炫耀。 尝试通过造型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>
 <% } %>

修改

做了别的事情(更清洁)。

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

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

仍然,我在我的aspx页面的最后一行得到错误,错误是什么想法?

2 个答案:

答案 0 :(得分:1)

您可以调用代码隐藏方法,该方法将返回可由浏览器直接呈现的格式化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数据控件,在模板中设置样式,并使用查询字符串或表单值过滤数据。

答案 1 :(得分:1)

您可以尝试使用一行:

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

设置后面的样式代码并使用css类将更清晰恕我直言

希望这会有所帮助