سؤال

وأنا باستخدام HeaderTemplate وContentTemplate من الأكورديون السيطرة وانه ملزم إلى DataTable. لسبب ما لا عرض أية بيانات. إذا كنت ربط 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>

وفي ج # رمز خلف:

databoundaccordion.DataSource = presenter.getDataTable();
databoundaccordion.DataBind();
هل كانت مفيدة؟

المحلول

وسيكون لديك صعوبات ملزمة على الأكورديون إلى كائن 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();

نصائح أخرى

ولقد بنيت مجرد مثال بسيط الذي يعمل بشكل جيد.

وبدلا من استخدام Databinder.Eval(Container.Item, "name") كنت Eval("name")

ويبدو أن هذا العمل مع مثال بسيط، وسوف أقوم بتحديث عندما لقد اختبرت مع رمز عملي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top