AjaxControlToolkit Accordion 和数据绑定

发布于 2024-08-09 12:02:35 字数 894 浏览 2 评论 0原文

我正在使用手风琴的 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();

I'm using the HeaderTemplate and the ContentTemplate of the Accordion
control and binding it to a datatable. For some reason it doesn't
display any data. If I bind the datatable to a datalist it works as
ecpected, is this a known issue or am i doing something completely
wrong. I'm binding the accordion control in the code behind if this
makes any difference. Here is the code:

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

and in the c# code behind:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

秋日私语 2024-08-16 12:02:35

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

You will have difficulties binding an Accordion to a DataTable object.
Instead, do the following by converting it into a DataTableReader and it should work just fine:

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

Here's another example with sample data:

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();
红焚 2024-08-16 12:02:35

我刚刚构建了一个运行良好的简单示例。

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

这似乎适用于简单的示例,我将在何时更新我已经用我的工作代码进行了测试。

I have just built a simple example which works fine.

rather than using Databinder.Eval(Container.Item, "name") I used Eval("name")

this seems to work with the simple example, I will update when I've tested with my working code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文