AjaxControlToolkit Аккордеон и привязка данных - PullRequest
0 голосов
/ 29 октября 2009

Я использую HeaderTemplate и ContentTemplate Аккордеона контролировать и связывать его с данными. По какой-то причине это не отображать любые данные. Если я связываю данные со списком данных, это работает как Ожидается, это известная проблема или я делаю что-то полностью неправильно. Я связываю аккордеонный контроль в коде, если это имеет значение. Вот код:

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

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Вам будет трудно связать Аккордеон с объектом 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 голосов
/ 29 октября 2009

Я только что построил простой пример, который отлично работает.

вместо использования Databinder.Eval(Container.Item, "name") Я использовал Eval("name")

это похоже на простой пример, я обновлю его после тестирования с моим рабочим кодом.

...