Pregunta

Estoy usando HeaderTemplate y ContentTemplate del acordeón controlarlo y vincularlo a una tabla de datos. Por alguna razón no lo hace mostrar cualquier dato. Si enlazo la tabla de datos a un datalista, funciona como esperado, ¿se trata de un problema conocido o estoy haciendo algo completamente incorrecto. Estoy vinculando el control de acordeón en el código detrás si esto hace alguna diferencia Aquí está el código:

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

y en el código C # detrás:

databoundaccordion.DataSource = presenter.getDataTable();
databoundaccordion.DataBind();
¿Fue útil?

Solución

Tendrá dificultades para vincular un acordeón a un objeto DataTable.
En su lugar, haga lo siguiente convirtiéndolo en un DataTableReader y debería funcionar bien:

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

Aquí hay otro ejemplo con datos de muestra:

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

Otros consejos

Acabo de construir un ejemplo simple que funciona bien.

en lugar de usar Databinder.Eval (Container.Item, " name ") utilicé Eval("name")

esto parece funcionar con el ejemplo simple, actualizaré cuando haya probado con mi código de trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top