首页 新闻 会员 周边

【求高人指点】mvc超级变态动态表格实现的问题

0
悬赏园豆:10 [已解决问题] 解决于 2017-04-14 11:07

如题,CSS表格样式之四。现在有个需求,不同客户,要现实的列不一样,这个前后端如何实现呢? 也就是说不仅仅动态绑定行数据,还要动态绑定哪些列?

在同一个页面下,如何实现呢? 比如,A客户只要显示Name,City列。B客户只要显示Name,Phone列,对于同一份代码,如何实现这个? 如果全部显示,再去隐藏不要的列这样实现不算。

王庆东mas的主页 王庆东mas | 初学一级 | 园豆:4
提问于:2017-04-10 23:45
< >
分享
最佳答案
1

额,嗯啊,你可以在后台用json返回整个DataTable,

然后...前台处理。

    $.ajax({
        type: "post",
        url: "/../...",
        async: true,
        data: { },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("获取后台数据错误!");
        },
        success: function (data) {    
            var itable = $("table").find("tr");//列显示位置table的tr中
            var user="";//获取用户
            var jsonRete = eval(data);
            for (var i in jsonRete)
            {
                if (user == "A")
                {
                    //列显示
                    itable.html("<td>"+jsonRete[i].Name+"</td>"+
                                "<td>"+jsonRete[i].City+"</td>" );
                }
                else if(user == "B")
                {
                    //列显示
                    itable.html("<td>"+jsonRete[i].Name+"</td>"+
                                "<td>"+jsonRete[i].Phone+"</td>" );
                }                            
            }               
        }
    });
收获园豆:10
你猜丶 | 初学一级 |园豆:183 | 2017-04-11 10:02

或者我觉得更简单这种,我不知道你是不是想要这样的功能

 @{foreach (System.Data.DataRow dr in dtSearchResult.Rows)
    {
        var ExchangeRate = ViewBag.User;//获取用户
        <tr >
            <td>@dr["Name"]</td>
            @if (ExchangeRate == "A")
            {
                 <td >@dr["City"]</td>
            }
            else if(ExchangeRate == "B")
            {
                 <td >@dr["Phone"]</td>
            }
        </tr>
      }
   }
你猜丶 | 园豆:183 (初学一级) | 2017-04-11 10:10
其他回答(4)
-1

 mvc是后台渲染。使用if else 分别渲染不同的表格比较合适。

幻天芒 | 园豆:37175 (高人七级) | 2017-04-11 08:41

没那么简单,也许你没理解我的问题所在。谢谢!

支持(0) 反对(0) 王庆东mas | 园豆:4 (初学一级) | 2017-04-11 09:34
0

你可以后台返回2个结果集,一个结果集是列的,一个是数据的,然后用js进行组装html

Jimmy.pan | 园豆:242 (菜鸟二级) | 2017-04-11 09:11

好像可以 谢谢

支持(0) 反对(0) 王庆东mas | 园豆:4 (初学一级) | 2017-04-11 09:35

@王庆东mas: 一起学习

支持(0) 反对(0) Jimmy.pan | 园豆:242 (菜鸟二级) | 2017-04-11 09:36
0

这种貌似挺简单的,不管是他需要显示什么列,都需要标注,你只需要将这些列存入数组, 而数据源可以进行一次解析

比如:

1 list={"city":"城市""Name":"名字"}
2 Model.Select(t=>new {t.city,t.Name})
Sen7 | 园豆:250 (菜鸟二级) | 2017-04-11 09:37

 这边这个model是不固定的,city列有没有要读取配置。

支持(0) 反对(0) 王庆东mas | 园豆:4 (初学一级) | 2017-04-11 09:38

@王庆东mas: 没固定也没关系,你是总是要进行查询数据,他需要展示的列,可以在查询后进行设置也可以在之前进行设置,总之是在Model上动手脚。

支持(0) 反对(0) Sen7 | 园豆:250 (菜鸟二级) | 2017-04-11 09:41
1

one:

{

cols:["列1","列2"],

rows:[["列1 value","列2 value"],["列1 value","列2 value"],["列1 value","列2 value"]]

}

czd890 | 园豆:14412 (专家六级) | 2017-04-11 10:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册