加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – DetailsView绑定空数据表时的错误?

发布时间:2020-12-15 21:50:31 所属栏目:百科 来源:网络整理
导读:我正在使用.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"); d
我正在使用.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().

如果至少有一行它可以工作!! (见评论栏).

关于如何解决/解决它的任何想法?

非常感谢

解决方法

我在最近的一个项目中遇到了同样的问题,我通过绑定空行colleciton解决了它,如下所示,(顺便说一句我在你的解决方案编译它,它工作得很好)

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();

    }

而且无论您添加多少列,它仍然有效.

问候

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读