2009-10-29 53 views
0

我正在使用控制手柄 的HeaderTemplate和ContentTemplate並將其綁定到數據表。由於某些原因,它不會顯示任何數據。如果我將數據表綁定到數據列表,它的工作原理是 ,這是一個已知問題,還是我在做一件完全不合適的事情 。如果這個 有什麼不同,我會在後面的代碼中綁定手風琴控件。下面是代碼:AjaxControlToolkit手風琴和數據綁定

<cc1:Accordion ID="databoundaccordion" runat="server" AutoSize="None" 
HeaderCssClass="articleHeader" HeaderSelectedCssClass="articleHeaderSelected" 
ContentCssClass="articleBody" FadeTransitions="true" 
SuppressHeaderPostbacks="true" RequireOpenedPane="true" 
TransitionDuration="250" FramesPerSecond="40"> 
<HeaderTemplate> 
    <%# DataBinder.Eval(Container.DataItem, "name")%> 
</HeaderTemplate> 
<ContentTemplate> 
    <p>Content goes here</p> 
    <a href="Articles.aspx">Go</a> 
</ContentTemplate> 

,並在後面的C#代碼:

databoundaccordion.DataSource = presenter.getDataTable(); 
databoundaccordion.DataBind(); 

回答

0

將Accordion綁定到DataTable對象時遇到困難。
相反,請執行以下操作將其轉化成DataTableReader,它應該只是罰款:

databoundaccordion.DataSource 
        = new System.Data.DataTableReader(presenter.getDataTable()); 
databoundaccordion.DataBind(); 

下面是用樣本數據的另一個例子:

DataTable dt = new DataTable(); 
dt.Columns.Add("HeaderText"); 
dt.Columns.Add("ContentText"); 

dt.Rows.Add(new object[] { "Heading 1", "Content 1" }); 
dt.Rows.Add(new object[] { "Heading 2", "Content 2" }); 

databoundaccordion.DataSource = new System.Data.DataTableReader(dt); 
databoundaccordion.DataBind(); 
0

我剛剛建立了一個簡單的例子,工作正常。

,而不是使用Databinder.Eval(Container.Item, "name")我以前Eval("name")

這似乎與簡單的例子來工作,當我已經與我的工作代碼測試我會更新。

+0

行,所以我試圖用我的簡單的例子我的工作代碼,但它仍然沒有。我從那以後發現,如果我使用表適配器從數據庫中檢索數據源,那麼數據綁定到手風琴的工作就完美了。然而,我想要做的是以編程方式創建一組虛擬表數據,所以我開始提出一個新的問題。 – Morgeh 2009-10-29 17:11:12