c# - 绑定(bind)空数据表时的 DetailsView 错误?

标签 c# asp.net webforms

我正在使用 .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/

相关文章:

使用 StateServer 的 ASP.NET session 混合(可怕!)

asp.net - 无法从后面的代码更改 CssClass

C# 检查 Regex 是否匹配,返回 True 而不是 False

c# - 如何确定一个非常大的数是否是质数?

c# - Xamarin 表单绑定(bind)标签 IsVisibleProperty

c# - Repeater 中的项目符号列表

ASP.net 按钮 OnClick 验证

asp.net - 有没有办法覆盖或禁用 ASP.NET WebForms 客户端脚本注册?

Python Mechanize 登录网站

c# - 从基于索引的正则表达式中获取反向引用基于名称的正则表达式