2009-10-29 15 views
5

Bir DataTable'ı bir akordeon veritabanına veriyorum ve DataTable'ı bir tablo bağdaştırıcısı kullanarak bir veritabanından aldığım takdirde akordeona mükemmel bir şekilde bağlandığımı ancak ne yapmak istediğimi buldum. kukla tablo oluşturmak için kod (benim veritabanına erişimi yoksa test amaçları için) bir kukla tablo oluşturmak aşağıdaki gibidir: Kukla verilere sahip bir DataTable nesnesi oluşturma

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

Ben verilere deneyin

ancak akordeon göstermez bu tabloyu bağlamak . Akordeon değil, bir gridview veya detailsview bağlayabilirsiniz.

+0

Eğer daha fazla bilgi eklemek için deneyebilirsiniz yapılmış bir DataTableReader için Akordeon Kontrolü bağlayabilir dTable.Columns.Add ("firstName", Type.GetType ("System.String")) gibi sütunlara nasıl? –

+0

Bunu deneyebilirdim ama daha önce de söylediğim gibi, bu tabloyu sorun olmadan bir gridview'e aktarabilirim. – Morgeh

cevap

18

sütunlar için türünü belirtmek emin olun, ben DataSource alan çok seçici olduğunu keşfetti.

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

akordeon sadece bir veri kümesi tablonun DefaultView bağlı sevmez çıkıyor:

İşte benim kod. Ben sadece bir DataTable (dt) bağlamayı denedim ve başarısız oldu. Dt.DefaultView bile başarısız oldu. Bir DataSet'e eklediğimde, bir şampiyon gibi bağlanır. Çok can sıkıcı, boşa zaman kaybı ile. Bunu çoktan unuttuğunuzu biliyorum, ancak gelecekteki araştırmacılara sunmak istedim. Accordion.DataSource çalışması için DataSet.Table.DefaultView'a bağlı olmalıdır.

1

sen kafamı duvara vurarak 4 saat sonra table2.Columns.Add (...)

İlgili konular