我想数据绑定一个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);

当我尝试数据表绑定然而手风琴不显示。我可以将它结合到一个gridview或DetailsView的但不是手风琴。

有帮助吗?

解决方案

4小时撞我的头靠在墙上后,我发现,数据源字段是非常挑剔。

下面是我的代码:

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

原来,手风琴只喜欢被绑定到一个数据集表的默认视图。我想结合只是一个DataTable(DT),它失败了。即使dt.DefaultView失败。一旦我把它添加到DataSet,它结合如飞。很烦人,与失去的时间浪费。我知道你可能已经长,因为忘记了这个,但我想使其可用于未来的搜索。的 Accordion.DataSource必须绑定到一个DataSet.Table.DefaultView工作。

其他提示

请确保您的table2.Columns.Add(...)

列指定类型

此外,如在下面的答案:

https://stackoverflow.com/a/6108163/637903

可以结合手风琴控制从原始数据表

构造的DataTableReader
accReportData.DataSource = new System.Data.DataTableReader(ds.Tables[0]);
accReportData.DataBind();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top