在循环中显示来自 EF table 的字段,我想将布尔值转换为空 space if False

In loop to display fields from EF table, I want to convert boolean to empty space if False

这两行是数据库中的布尔值,添加记录页面上的复选框。 但是当我显示输入的行时,我希望 space 为空,其中值为 False(未选中复选框,table 中的字段保存为 False)。

    <td align="center">@m.IsTOTPresent</td>
    <td align="center">@m.IsEColi</td>

我认为有一个 if 条件会根据布尔结果 true 或 false 改变它在网页上的外观。在我的例子中,没有任何显示对于 false 是最佳的,而带有灰色背景的红色 "true" 对于 true 结果是最佳的。在一个完美的世界里,就是这样。

有很多方法可以实现您的要求。这里有一对...


1。主要是剃须刀

CSS:

.myTrue {
    background-color: red;
    color: white;
};

.myFalse {
    background-color: white;
    color: black;
};

Markup/Razor:

<td align='center' class='@(m.IsTOTPresent ? "myTrue" : "myFalse")'>@(m.IsTOTPresent ? "true" : "")</td>
<td align='center' class='@(m.IsEColi? "myTrue" : "myFalse")'>@(m.IsEColi? "true" : "")</td>

2。主要是 js

Markup/Razor:

<td align='center' data-boolean-value="@m.IsTOTPresent"></td>
<td align='center' data-boolean-value="@m.IsEColi"></td>

js:

(function() {
     document.querySelectorAll('[data-boolean-value]').forEach(
         function (obj, idx, arr) {
             if (typeof obj.dataset.booleanValue !== 'undefined') {
                 if(obj.dataset.booleanValue) {
                     obj.innerHTML = "true";
                     obj.style.backgroundColor = "red";
                     obj.style.color = "white";
                 } else {
                     obj.innerHTML = "";
                     obj.style.backgroundColor = "white";
                     obj.style.color = "black";
                 }
             }
         });
})();