我的一个代码隐藏文件是将一些布尔值(从数据库中读取)发送到related.aspx文件。我想基于此布尔值更改容器分区的css样式类。我试着按照以下方式去做,
文件后面的代码:
protected void Page_Load(object sender, EventArgs e)
{
Result.InnerText = "false"; //In real scenario, this is retrieved from a db
}
aspx文件:
<form id="form1" runat="server">
<% if (Result.InnerText == "true") { Result.Style["Color"] = "#000000"; } else { Result.Style["Color"] = "#ff0000"; } %>
<div id="Result" runat="server">
</div>
</form>
它似乎工作正常,但我不满意这个片段。这是这样做的吗?我正在做得好???
更新
还有其他办法吗?如果是这样哪个更好?注意:我必须能够在需要时更改css类名称(应用于除法)
答案 0 :(得分:3)
您的结果Div已在代码隐藏中连接,因此您根本不需要将if语句放在ASPX中。
protected void Page_Load(object sender, EventArgs e)
{
Result.InnerText = "false"; //In real scenario, this is retrieved from a db
if (Result.InnerText == "true") {
Result.Style["Color"] = "#000000";
} else {
Result.Style["Color"] = "#ff0000";
}
}
答案 1 :(得分:2)
您可以在行后面的c#(代码隐藏)中设置颜色,从中获取数据库中的变量值。
Result.Style["Color"] = (myDBVariable == "false") ? "#000000" : "#ff0000";
答案 2 :(得分:2)
首先我要创建一个公共变量,比如result
。然后在.aspx中执行此操作:
<div id="result" class='<%=(result?"someClass":"someOtherClass") %>'>
Your text
</div>
或者如果您想在后端(.aspx)上完成所有操作:
<div id="result" runat="server">
Your text
</div>
的.cs
if (result) {
result.CssClass = "yourClass";
} else {
result.CssClass = "anotherClass";
}