2009-10-29 2 views
0

Я использую HeaderTemplate и ContentTemplate Аккордеона и привязываю его к datatable. По какой-то причине это не отображение любых данных. Если я привяжу datatable к datalist, он работает как ecpected, это известная проблема или я что-то делаю полностью неправильно. Я привязываю контроль аккордеона в коде, если это имеет значение. Вот код: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

У вас возникнут трудности с привязкой Аккордеона к объекту 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