我正在使用 .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 cannot be null. Parameter name: c
在 dtvTest.DataBind() 上抛出。
如果至少有一行就可以了!! (请参阅注释行)。
关于如何解决/解决它的任何想法?
非常感谢
最佳答案
我在我最近的一个项目中遇到了同样的问题,我通过将空行集合绑定(bind)为 Follows 来解决它,(顺便说一句,我在你的解决方案中编译它并且它工作得很好)
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();
}
而且无论您添加多少列,它仍然有效。
问候
关于c# - 绑定(bind)空数据表时的 DetailsView 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16303018/