c# - 无法将动态 DataTable 绑定到 Grid.MVC
问题描述
我想使用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
已存在于网格中(在第二项)。
我也试过用 afor 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)'
我怎样才能做到这一点?
解决方案
您可以放置一个 if 条件并跳过添加该列。
try
{
columns.Add(a => item).Titled(item.ColumnName);
if (item.ColumnName == "Your Column name")
{
//skip that column
}
}
推荐阅读
- excel - Google 表格公式替换 Excel 公式查找(2,1/(AA:AA<>""),AA:AA)
- mysql - 如何通过语句转换订单中的日期?(MySQL)
- python - 直方图均衡给了我全黑的图像
- asp.net-core - 如何在 Blazor Server 关闭之前执行方法?
- sql-server - 由于区分大小写,Tablediff 实用程序未创建文件
- phaser-framework - 调试对象未定义
- vba - 为什么我在一个表单上而不是另一个表单上收到运行时错误 2185?
- excel - 在excel选择中交换2个值
- visual-studio - 在 Visual Studio 中重定向生成输出
- python - 为什么我需要在 Python/Pytorch 中使用两次导入?