AjaxControlToolkit手风琴和数据绑定

时间:2009-10-29 12:27:37

标签: c# ajax accordion

我正在使用手风琴的HeaderTemplate和ContentTemplate 控制并将其绑定到数据表。出于某种原因,它没有 显示任何数据。如果我将数据表绑定到datalist,它就像 受人尊敬,这是一个已知的问题还是我完全做了什么 错误。如果这样的话,我会在代码中绑定手风琴控件 有所作为。这是代码:

<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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我刚刚建立了一个很好的例子。

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

这似乎适用于简单的示例,当我使用我的工作代码进行测试时,我会更新。