我正在使用Telerik Grid.我需要根据视图模型中的某些属性为整行设置背景颜色.我试着通过在每个列的IF语句中设置背景来实现如下,但是backgound仅适用于元素而不是所有单元格(td).此外,它似乎是一种非常"肮脏"的方式来完成这项任务.
@(Html.Telerik().Grid(Model.SomeItems).Name("Grid")
.Columns(columns =>
{
columns.Template(
@<text>
@if (Model.IsOfSpecialColor)
{
<div class="gridRowBackground">
@Html.ActionLink(...)
</div>
}
else
{
@Html.ActionLink(...)
}
</text>).Title("Blabla");
});
Run Code Online (Sandbox Code Playgroud) 我对Visual Studio 2012单元测试有一个问题,更确切地说 - 代码覆盖率.这是目标代码:
var someDeals = allDeals
.Where(i => i.Number != null && !i.Number.StartsWith(SomeString))
.Select(i => new DealInfoDto
{
CurrentDebtAmount = i.CurrentDebtAmount,
Date = i.Date,
NextMonthlyPaymentDate = i.NextMonthlyPaymentDate,
Number = i.Number,
AccountNumber = i.AccountNumber,
})
.ToArray();
Run Code Online (Sandbox Code Playgroud)
当我运行分析代码覆盖时,它向我显示第二行(i.Number != null && !i.Number.StartsWith(SomeString)
)中的lambda表达式是部分触摸区域,我无法获得100%覆盖率.但我确信这个表达式是被评估的(SELECT中的表达式是正确的,所以WHERE中的表达式是真的,这意味着&&语句的两个部分都被触及了,我也检查了数据,我确信这个i.Number != null
和!i.Number.StartsWith(SomeString)
.
为什么不包括这个块?
PS我Where
分成两个表达式,一切都变好了.但它看起来很丑陋,只会更好一点Where
:
allDeals
.Where(i => i.Number != null)
.Where(i => !i.Number.StartsWith(CardAccountIdentifier))
Run Code Online (Sandbox Code Playgroud)