我有一个数据表,其中一列是linq查询返回的列表。
列表类似于:
OFAC,EPLS,UNCON,IEO,EPLS,HHS,EPLS,HHS,EPLS,EPLS,HHS,IEO
我希望列值之间用逗号分隔。
我不确定是否应该在后端执行此操作,还是应该尝试使用CSS完成此操作?
这是我的代码示例:
internal List<string> GetListTitles(long id_validation_results)
{
var list = new List<string>();
using(var db = new fabitrack_validationEntities(ValidationConnString))
{
list = db.ValidationSpecifics.Where(o => o.id_validation_results == o.id_validation_results)
.Select(o => o.title).ToList();
}
return list;
}
<tbody>
@foreach (var o in Model.Results)
{
<tr>
@if (o.Person.FirstName == null || o.Person.FirstName == "" || o.Person.FirstName == "NOT")
{
<td>Not Found</td>
}
else
{
<td>@Html.ActionLink(o.Person.FirstName, "Detail", "Player", new { selectedPlayerID = o.Person.IDPerson, referringController = "ValidationHistory" }, null)</td>
}
@if (o.Person.LastName == null || o.Person.LastName == "" || o.Person.LastName == "FOUND")
{
<td>Not Found</td>
}
else
{
<td>@Html.ActionLink(o.Person.LastName, "Detail", "Player", new { selectedPlayerID = o.Person.IDPerson, referringController = "ValidationHistory" }, null)</td>
}
<td>@o.Person.SocialSecurityNumber</td>
<td>@o.Validation_Results.IRSOk</td><!--IRS/TIN-->
<td>@o.Validation_Results.DMFOk</td><!--DMF Details-->
<td>@o.Validation_Results.ListOk</td><!--List Matches-->
<td>@o.Validation_Results.ExecutedAt<!--Executed At-->
<td>@o.Validation_Results.ExecutedBy</td><!--Executed By-->
<td>@o.Person.ClubID</td>
<td id="listcol">@o.ListMatches</td>
</tr>
}
</tbody>
然后我尝试了一些CSS。
#listcol {
display: -ms-flexbox; /* IE 10 */
display: -webkit-flex; /* Safari 6.1+. iOS 7.1+ */
display: flex;
-webkit-flex-flow: wrap column; /* Safari 6.1+ */
flex-flow: wrap column;
max-height: 150px;
}
答案 0 :(得分:1)
您不应使用逗号(,)和CSS驱动显示逻辑。这是一种反模式。将来,您可能需要将逗号等分隔符更改为分号。而是从控制器将数据作为列表发送。
您可以使用以下代码作为此处的答案:How can I convert comma separated string into a List<int>
string csv = "1,2,3,4,a,5,0,3,r,5";
int mos = 0;
var intList = csv.Split(',')
.Where(m => int.TryParse(m, out mos))
.Select(m => int.Parse(m))
.ToList();
//返回具有整数的列表:1、2、3、4、5、0、3、5
现在您有了一个整数列表。您可以对字符串执行相同的操作。只需更改数据类型并在查询中删除int.TryParse
和int.Parse
。
然后在UI上循环浏览列表并根据需要呈现数据。