vustan
10.06.2008, 11:48
Ben yaptığım sitede menu olarak ajax accordion control kullanmak istiyorum. Menu elemanlarını bir veritabanından çekicem. Bazı menulerin altmenuleri de var. Alt menuler contentcontainer içinde olacak. Yani alt menu yoksa accordionun header bölümüne tıklayınca ilgili sayfaya gidilecek; varsa headerın altında content bölümü açılacak alt muler orada görüntülenecek böylece ilgili bölüme gidilebilinecek. Bunun için uygun kodları internette buldum ama çalışmadı. Yani hata vermiyor ama hiç birşey de görüntülenmiyor. Sayfada kullandığım kodları da ekliyorum. Yardımcı olabilirseniz sevinirim.
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using AjaxControlToolkit;
public partial class dersmenudeneme : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
RituelClass cl = new RituelClass();
string yol = cl.yol;
OleDbConnection baglan = new OleDbConnection(yol);
string SorguDersler = "select * from tblmenu where menuId=0";
OleDbDataAdapter oddaDersler = new OleDbDataAdapter(SorguDersler, baglan);
DataTable dtDersler = new DataTable();
oddaDersler.Fill(dtDersler);
Accordion accDersler = new Accordion();
foreach (DataRow dr in dtDersler.Rows)
{
int Dersid = Convert.ToInt16(dr["Id"]);
OleDbConnection baglan2 = new OleDbConnection(yol);
string SorguAltDesler = "select * from tblmenu where menuId=" + Dersid + "";
OleDbDataAdapter oddaAltDersler = new OleDbDataAdapter(SorguAltDesler, baglan2);
DataTable dtAltdersler = new DataTable();
oddaAltDersler.Fill(dtAltdersler);
if (dtAltdersler.Rows.Count == 0)
{
string adres = dr["menu"].ToString();
LinkButton lb = new LinkButton();
lb.ID = "lb" + Dersid.ToString();
lb.Text = dr["menuad"].ToString();
lb.PostBackUrl = "default.aspx?sayfa=" + adres;
AccordionPane paneDersmenu = new AccordionPane();
paneDersmenu.HeaderContainer.Controls.Add(lb);
accDersler.Panes.Add(paneDersmenu);
}
else
{
AccordionPane paneDersmenu = new AccordionPane();
paneDersmenu.HeaderContainer.Controls.Add(new LiteralControl(dr["menuad"].ToString()));
foreach (DataRow drAlt in dtAltdersler.Rows)
{
int DersAltid = Convert.ToInt16(dr["Id"]);
string adresAlt = drAlt["menu"].ToString();
LinkButton lbAlt = new LinkButton();
lbAlt.ID = "lbAlt" + DersAltid.ToString();
lbAlt.Text = drAlt["menuad"].ToString();
lbAlt.PostBackUrl = "default.aspx?sayfa" + adresAlt;
paneDersmenu.ContentContainer.Controls.Add(lbAlt);
}
accDersler.Panes.Add(paneDersmenu);
}
}
}
}
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using AjaxControlToolkit;
public partial class dersmenudeneme : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
RituelClass cl = new RituelClass();
string yol = cl.yol;
OleDbConnection baglan = new OleDbConnection(yol);
string SorguDersler = "select * from tblmenu where menuId=0";
OleDbDataAdapter oddaDersler = new OleDbDataAdapter(SorguDersler, baglan);
DataTable dtDersler = new DataTable();
oddaDersler.Fill(dtDersler);
Accordion accDersler = new Accordion();
foreach (DataRow dr in dtDersler.Rows)
{
int Dersid = Convert.ToInt16(dr["Id"]);
OleDbConnection baglan2 = new OleDbConnection(yol);
string SorguAltDesler = "select * from tblmenu where menuId=" + Dersid + "";
OleDbDataAdapter oddaAltDersler = new OleDbDataAdapter(SorguAltDesler, baglan2);
DataTable dtAltdersler = new DataTable();
oddaAltDersler.Fill(dtAltdersler);
if (dtAltdersler.Rows.Count == 0)
{
string adres = dr["menu"].ToString();
LinkButton lb = new LinkButton();
lb.ID = "lb" + Dersid.ToString();
lb.Text = dr["menuad"].ToString();
lb.PostBackUrl = "default.aspx?sayfa=" + adres;
AccordionPane paneDersmenu = new AccordionPane();
paneDersmenu.HeaderContainer.Controls.Add(lb);
accDersler.Panes.Add(paneDersmenu);
}
else
{
AccordionPane paneDersmenu = new AccordionPane();
paneDersmenu.HeaderContainer.Controls.Add(new LiteralControl(dr["menuad"].ToString()));
foreach (DataRow drAlt in dtAltdersler.Rows)
{
int DersAltid = Convert.ToInt16(dr["Id"]);
string adresAlt = drAlt["menu"].ToString();
LinkButton lbAlt = new LinkButton();
lbAlt.ID = "lbAlt" + DersAltid.ToString();
lbAlt.Text = drAlt["menuad"].ToString();
lbAlt.PostBackUrl = "default.aspx?sayfa" + adresAlt;
paneDersmenu.ContentContainer.Controls.Add(lbAlt);
}
accDersler.Panes.Add(paneDersmenu);
}
}
}
}