Hi, Friends
I am trying to bind accordion control at run time. Header is loading,but the content is not loading. please correct me where i gone wrong
This is the code to load accordion Header
public DataTable EventName()
{
string tablename = "Event";
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select EventName from EventNames order by EventName";
return GetData(cmd, tablename).Tables[0];
}
In the page load event i write like this
if (!IsPostBack)
{
dataacess da = new dataacess();
DataTable dt = da.EventName();
Accordion1.DataSource = dt.DefaultView;
Accordion1.DataBind();
}
the aspx page design is like this
<asp:Accordion runat="server" ID="Accordion1" SuppressHeaderPostbacks="true" HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected" ContentCssClass="accordionContent" Width="500"
OnItemDataBound="Accordion1_ItemDataBound">
<HeaderTemplate>
<asp:Label runat="server" ID="lblEventName" Text='<%#Eval("EventName") %>'> </asp:Label>
</HeaderTemplate>
<ContentTemplate>
<asp:HiddenField runat="server" ID="hidEventName" Value='<%#Eval("EventName") %>'>
</asp:HiddenField>
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<p>
<asp:Label runat="server" ID="litDate" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'
Font-Size="Medium" ForeColor="Maroon" Font-Bold="True"></asp:Label><br />
<asp:Literal runat="server" ID="litDesc1" Text='<%# "Date: " + DataBinder.Eval(Container.DataItem, "EDate", "{0:dd/MMM/yyyy,dddd}") %>'></asp:Literal>
<br />
Description:
<asp:Literal runat="server" ID="litDesc2" Text='<%# DataBinder.Eval(Container.DataItem, "Description2") %>'></asp:Literal></p>
</ItemTemplate>
<SeparatorTemplate>
<hr />
</SeparatorTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:Accordion>
Accordion OnItemDataBound event
protected void Accordion1_ItemDataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
{
if (e.ItemType==AjaxControlToolkit.AccordionItemType.Content)
{
Repeater Repeater1 = (Repeater)e.AccordionItem.FindControl("Repeater1");
HiddenField hidEventName = (HiddenField)e.AccordionItem.FindControl("hidEventName");
dataacess da = new dataacess();
Repeater1.DataSource = da.EventHistory(pname, hidEventName.ToString());
Repeater1.DataBind();
}
}
If i use the code separately to bind the repeater its working without any problem.
Where i should i make changes to work it proper