문제

나는 headertemplate과 아코디언 컨트롤의 내용 판을 사용하여 데이터를 바인딩하고 있습니다. 어떤 이유로 든 데이터가 표시되지 않습니다. DataTable을 Datalist에 바인딩한다면 그것은 ecpected로 작동합니다. 이것은 알려진 문제이거나 완전히 잘못된 일을하고 있습니다. 이것이 차이가 있다면 코드의 아코디언 제어를 구속하고 있습니다. 코드는 다음과 같습니다.

<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();
도움이 되었습니까?

해결책

아코디언을 데이터 가능한 객체에 묶는 데 어려움이 있습니다.
대신, 데이터 블리어로 변환하여 다음을 수행하면 잘 작동해야합니다.

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

다른 팁

방금 잘 작동하는 간단한 예제를 만들었습니다.

사용하기보다는 Databinder.Eval(Container.Item, "name") 나는 사용했다 Eval("name")

이것은 간단한 예제와 함께 작동하는 것 같습니다. 작업 코드로 테스트했을 때 업데이트하겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top