绑定空数据表时的DetailsView错误
本文关键字:DetailsView 错误 数据表 绑定 | 更新日期: 2023-09-27 18:11:27
我正在使用。net 4.5,我发现了这个奇怪的行为:
标记:
<asp:DetailsView ID="dtvTest" AutoGenerateRows="true" DefaultMode="Insert" runat="server" />
代码:protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable("Test");
dt.Columns.Add("Column", typeof(string));
// If I uncomment the line it works!
// dt.Rows.Add("row 1");
dtvTest.DataSource = dt;
dtvTest.DataBind();
}
结果是
Collection不能为空。参数名称:c
在dtvTest.DataBind()上抛出。
如果至少有一行,它工作!!(见注释行)。
关于如何修复/工作周围的想法吗?
多谢
我在最近的一个项目中遇到了同样的问题,我通过如下方式绑定空行集合来解决它,(顺便说一下,我在我们的解决方案中编译了它,它工作得很好)
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable("Test");
dt.Columns.Add("Column", typeof(string));
// If I uncomment the line it works!
// dt.Rows.Add("row 1");
dt.LoadDataRow(new string[1],true);
dtvTest.DataSource = dt;
dtvTest.DataBind();
}
无论你添加多少列,它仍然有效。
对