//Visit http://www.laptrinhdotnet.com for more ASP.NET Tutorials
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;
namespace AjaxAccordionAndRepeater
{
public partial class _Default : System.Web.UI.Page
{
#region"Create Accordion"
private voidCreateAccordion()
{
DataTable objBind = newDataTable();
objBind = BindData();
if (objBind != null)
{
if (objBind.Rows.Count > 0)
{
MyAccordion.DataSource = newSystem.Data.DataTableReader(objBind);
MyAccordion.DataBind();
}
}
updatePanel.Update();
}
#endregion
#region"Bind Data"
private DataTableBindData()
{
SqlDataProvider objSQL = newSqlDataProvider();
DataTable objBind = objSQL.FillTable("Select Categories.* From Categories");
return objBind;
}
private DataTableBindProduct(int CategoryID)
{
SqlDataProvider objSQL = newSqlDataProvider();
DataTable objBind = objSQL.FillTable("Select Products.* From Products Where CategoryID=" + CategoryID + "");
return objBind;
}
#endregion
#region"Accordion Methods"
protected voidMyAccordion_ItemDataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
{
if (e.ItemType == AccordionItemType.Content)
{
int CategoryID =Convert.ToInt32(((Label)e.AccordionItem.FindControl("lblCategoryID")).Text);
AccordionContentPanel cPanel = e.AccordionItem;
Repeater rptObject = (Repeater)cPanel.FindControl("rptObject");
rptObject.DataSource = BindProduct(CategoryID);
rptObject.DataBind();
}
}
#endregion
#region"Event Handles"
protected voidPage_Load(object sender, System.EventArgs e)
{
try
{
if (!IsPostBack)
{
CreateAccordion();
}
}
catch
{
}
}
#endregion
}
}