基于首选项的表列顺序的理想方法是什么

时间:2013-01-14 17:30:21

标签: asp.net-mvc

我的应用程序中的数据表有很多列。不同的用户需要不同的列集并按特定顺序。我正在做的方式是,我有一个表的每列相关的唯一ID,我将它们存储在用户首选项中。例如:

columnsToDisplay = "1,4,23,12,2,5,6,7,8,13,15"

在我看来,我正在使用 if else if 来迭代我的表模型(我使用的是ASP.NET MVC)来渲染表。我觉得这不是正确的做法。想象一下有50列的表,如果是50次就做其他的!没有使用jQuery或任何客户端脚本插件,这个问题的理想方法是什么?

修改 这就是我现在正在做的事情。我正在将每列与使用偏好进行比较。

foreach(var col in model)
{ if(col.name == id) {
<td>{{id}}</td>}else if(col.name == customerName) {
<td>{{name}}</td>}else if(col.name == balance) {
<td>{{balance}}</td>}else if(col.name == createdOn) {
<td>{{createdOn}}</td>} 
}
.....

依旧......

1 个答案:

答案 0 :(得分:0)

如果这些表是只读的(您不需要将它们发布回服务器),您可能会将模型数据丢弃到IDictionary个对象的数组中。然后,您可以使用columnsToDisplay的值(作为整数数组)在创建视图时获取相关列。

这样的事情,假设您的模型被称为model

model.ColumnArray = { 2, 4, 6, 1, 0 };

然后,假设model有一个名为Rows的属性,其中包含IDictionary个对象:

@foreach(var model in Model.Rows)
{
    <tr>
    foreach(var column in Model.ColumnArray)
    {
        <td>@model[column]</td>
    }
    </tr>
}