使用虚拟数据创建DataTable对象

Mor*_*geh 10 c# data-binding ajax accordion ajaxcontroltoolkit

我正在尝试将DataTable数据绑定到手风琴,我发现如果我使用表适配器从数据库中检索DataTable它完全绑定到手风琴但是我想要做的是创建一个虚拟表(用于测试目的,如果我无法访问我的数据库)创建虚拟表的代码如下:

    DataTable table2 = new DataTable("articletable");
    table2.Columns.Add("articleID");
    table2.Columns.Add("title");
    table2.Columns.Add("content");

    DataRow row = table2.NewRow();
    row[0] = "1";
    row[1] = "article name";
    row[2] = "article contents go here";
    table2.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)

当我尝试数据绑定该表但手风琴不显示.我可以将它绑定到gridview或detailsview但不能将其绑定到手风琴上.

Gar*_*ely 24

在将我的头撞到墙上4个小时后,我发现DataSource字段非常挑剔.

这是我的代码:

DataSet ds = new DataSet();

        DataTable dt = new DataTable();
        dt.Columns.Add("Name");
        dt.Columns.Add("Branch");
        dt.Columns.Add("Officer");
        dt.Columns.Add("CustAcct");
        dt.Columns.Add("Grade");
        dt.Columns.Add("Rate");
        dt.Columns.Add("OrigBal");
        dt.Columns.Add("BookBal");
        dt.Columns.Add("Available");
        dt.Columns.Add("Effective");
        dt.Columns.Add("Maturity");
        dt.Columns.Add("Collateral");
        dt.Columns.Add("LoanSource");
        dt.Columns.Add("RBCCode");

        dt.Rows.Add(new object[] { "James Bond, LLC", 120, "Garrison Neely", "123 3428749020", 35, "6.000", "$24,590", "$13,432",
            "$12,659", "12/13/21", "1/30/27", 55, "ILS", "R"});

        ds.Tables.Add(dt);

        accReportData.DataSourceID = null;
        accReportData.DataSource = ds.Tables[0].DefaultView;
        accReportData.DataBind();
Run Code Online (Sandbox Code Playgroud)

事实证明,手风琴只喜欢被绑定到数据集表的默认视图.我尝试绑定到一个DataTable(dt),但它失败了.甚至dt.DefaultView都失败了.一旦我将它添加到DataSet中,它就会像冠军一样绑定.很烦人,浪费了时间.我知道你可能已经很久没有忘记这一点,但我想让它可供未来的搜索者使用. Accordion.DataSource必须绑定到DataSet.Table.DefaultView才能工作.