无法将动态数据表绑定到Grid.MVC

时间:2018-07-30 09:14:10

标签: c# asp.net-mvc datatable grid

我想使用Grid.MVC创建一个表格(表格)。在此网格中,我想绑定到DataTable,这是我从SELECT * FROM TABLE获得的表。

查看

我的视图如下:

@model DataTable
@{
    ViewBag.Title = "ViewTable";
}
@using GridMvc.Html
@using System.Data
<h2>ViewTable</h2>
@Html.Grid(Model.Columns.Cast<IEnumerable<DataColumn>>()).Columns(columns =>
{
    columns.Add().RenderValueAs(a => Html.ActionLink("Edit", "Index"));
    foreach (DataColumn item in Model.Columns)
    {
        try
        {
            columns.Add(a => item).Titled(item.ColumnName);
        }
        catch (Exception)
        {

            throw;
        }
    }
})
  

这总是抛出网格中已经存在的错误列item   (第二项)。

我还使用for loop而不是foreach进行了尝试。

for (int i = 0; i < Model.Columns.Count; i++)
{
    var idx = i;
    try
    {
        columns.Add(a => Model.Columns[idx]).Titled(Model.Columns[idx].ColumnName);
    }
    catch (Exception)
    {

        throw;
    }
}

在这里,我得到以下异常(错误消息):

  

表达式'a => value(ASP._Page_Views_Home_ViewTable_cshtml).Model.Columns.get_Item(value(ASP._Page_Views_Home_ViewTable_cshtml + <> c__DisplayClass4).idx)'不受网格支持

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您可以设置if条件,然后跳过添加该列的操作。

try
{
    columns.Add(a => item).Titled(item.ColumnName);
    if (item.ColumnName == "Your Column name")
    {
        //skip that column
    }

}