如何在查询退市产品时为前端表格添加DateRetired列?
解决方案:动态显示退市日期列
当然可行,但你当前的代码存在HTML结构错误,会导致表格显示混乱,调整写法就能实现需求:
现有代码的问题
你在产品循环里嵌套了<thead>和表头行,这会让每遇到一个退市产品就重复生成表头,同时破坏表格的结构规范(<thead>不能放在<tbody>的行内),还会造成表格列数不一致。
修改后的代码示例
@if (foundProducts.Count == 0) { <p><em>Loading...</em></p> } else { <table class="table table-striped"> <thead> <tr> <th scope="col">Name</th> <th scope="col">Description</th> <th scope="col">Additional Information</th> <th scope="col">Price</th> <!-- 根据复选框状态决定是否显示退市日期表头 --> @if (isShowRetired) { <th scope="col">退市日期</th> } </tr> </thead> <tbody> @foreach (var product in foundProducts) { <tr> <td>@product.SystemName</td> <td>@product.SystemDescription</td> <td>@product.AdditionalInformation</td> <td>@product.Price</td> <!-- 同步根据复选框状态添加对应列 --> @if (isShowRetired) { <td>@(product.DateRetired?.ToString("yyyy-MM-dd") ?? "未退市")</td> } </tr> } </tbody> </table> }
关键说明
- 统一控制列显示:用
isShowRetired布尔变量对应复选框的勾选状态(你需要在后端逻辑中传递这个变量,比如通过ViewModel),表头和每行的列保持同步,避免结构混乱。 - 修正循环变量错误:原代码循环变量是
system但内部用product,示例中已统一为product。 - 友好显示空值:用
??运算符处理未退市产品的DateRetired空值,可根据需求改为空字符串或其他提示文本。
内容的提问来源于stack exchange,提问作者Lisa
相关产品推荐
相关产品推荐

