2009-10-29 8 views
0

J'utilise HeaderTemplate et le ContentTemplate du contrôle Accordéon pour le lier à une datatable. Pour une raison quelconque, il n'affiche aucune donnée. Si je lier le datatable à un datalist il fonctionne comme ecpected, est-ce un problème connu ou suis-je faire quelque chose complètement faux. Je lie le contrôle d'accordéon dans le code derrière si cela fait n'importe quelle différence. Voici le code:AjaxControlToolkit Accordéon et liaison de données

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

et dans le code C# derrière:

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

Répondre

0

Vous aurez des difficultés à lier un Accordéon à un objet DataTable.
Au lieu de cela, procédez comme suit en le convertissant en un DataTableReader et il devrait fonctionner parfaitement:

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

Voici un autre exemple avec des échantillons de données:

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

Je viens de construire un exemple simple qui fonctionne très bien.

plutôt que d'utiliser Databinder.Eval(Container.Item, "name") je Eval("name")

cela semble fonctionner avec l'exemple simple, je mettrai à jour quand je l'ai testé avec mon code de travail.

+0

ok donc j'ai essayé d'utiliser mon exemple simple mon code de travail et il didn'y toujours. J'ai depuis constaté que si je récupère la source de données à partir d'une base de données en utilisant un adaptateur de table, la connexion de données à un accordéon fonctionne parfaitement. Cependant, ce que j'essaie de faire est de créer un ensemble de données de table fictives par programme, donc je commence une nouvelle question à ce sujet. – Morgeh