gpt4 book ai didi

c# - 向 ASP.NET MVC View 中的表动态添加列

转载 作者:太空狗 更新时间:2023-10-29 21:20:17 26 4
gpt4 key购买 nike

我正在向我的用户数据模型返回一个 IList。我希望我的最终用户能够选择他们想要查看的列。

我知道我可以用一个巨大的“if 语句”来做到这一点,但是,我知道一定有更好的方法。

我用列名创建了一个枚举。我觉得如果我能接受 IListItem.EnumName 我会被设置。但是,我不太确定如何执行此操作。

建议?

最佳答案

我通过创建一个 IColumn 接口(interface)然后创建一堆可以正确显示我的模型的不同方面的列类来处理这个问题。然后 View 使用简单的 for 循环呈现每一列。例如:

public interface IColumn
{
string Title { get; }
string Render(MyModelObject obj);
}

public class NameColumn : IColumn
{
public string Title { get { return "Name"; } }

public string Render(MyModelObject obj)
{
return obj.Name;
}
}

在你看来你会做这样的事情:

<tr>
<% foreach (var column in Model.UserColumns) { %>
<th><%= column.Title %></th>
<% } %>
</tr>

<% foreach (var item in Model.Items) { %>
<tr>
<% foreach (var column in Model.UserColumns) { %>
<td><%: column.Render(item) %></td>
<% } %>
</tr>
<% } %>

这对我来说效果很好!

关于c# - 向 ASP.NET MVC View 中的表动态添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com