我想使用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)'不受网格支持
我该如何实现?
答案 0 :(得分:1)
您可以设置if条件,然后跳过添加该列的操作。
try
{
columns.Add(a => item).Titled(item.ColumnName);
if (item.ColumnName == "Your Column name")
{
//skip that column
}
}