加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 从DataTable填充MVC Webgrid

发布时间:2020-12-16 03:37:24 所属栏目:asp.Net 来源:网络整理
导读:我试图使用DataTable填充MVC Webgrid,DataTable在后面的代码中构建,然后使用AsEnumerable()扩展方法进行枚举. 但是,当我调用GetHtml方法时,输出不是我所期望的,它包含两列HasErrors和RowError,而没有我定义的列. 我错过了什么吗? DataTable table = new Dat
我试图使用DataTable填充MVC Webgrid,DataTable在后面的代码中构建,然后使用AsEnumerable()扩展方法进行枚举.

但是,当我调用GetHtml方法时,输出不是我所期望的,它包含两列HasErrors和RowError,而没有我定义的列.

我错过了什么吗?

DataTable table = new DataTable();
        table.Columns.Add("I/Dia");

        foreach (var item in Variations.Where(item => !table.Columns.Contains(item.CrossSectionalDiameter)))
        {
            table.Columns.Add(item.CrossSectionalDiameter);
        }

        foreach (var item in Variations)
        {
            var r = table.Rows.Add();
            r["I/Dia"] = item.InternalDiameter;
            r[item.CrossSectionalDiameter] = item.Price;
        }

        return table.AsEnumerable();

解决方法

我有类似的问题.最后根据你的评论做一些工作.

var result = new List<dynamic>();
        foreach (DataRow row in table.Rows)
        {
            var obj = (IDictionary<string,object>)new ExpandoObject();
            foreach (DataColumn col in table.Columns)
            {
                obj.Add(col.ColumnName,row[col.ColumnName]);
            }
            result.Add(obj);
        }
        var grid = new WebGrid(result)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读