arkadaşlar merhaba ben e-ticaret sitesi yapıyorum.ama kategori kısmında sorunum var.şimdi treeview ile sınırsız kategori yaptım.verileri yazdırdım.kategiler çok güzel görünüyor.sayfa yoluna da index.aspx?catID=bilgisayar gibi uzantıyı da alıyorum.sorunum ise burada ballıyor.ben kategori adı yerine id almak istiyorum.bunu nasıl alabilirim.seçtiğim kategorinin id sini yakalayıp o id ile bağlı dataliste veri alıcam. yardımcı olursanız sevinirim..
string veri; DataTable dt = new DataTable(); protected void Page_Load(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("connectionstring"); SqlDataAdapter da = new SqlDataAdapter("select * from Kategoriler", conn);
da.Fill(dt); kategori(TreeView1.Nodes[0],getrows("0")); //ürünler kısmı DataSet ds = new DataSet(); da.Fill(ds, "datst"); SqlCommand com = new SqlCommand("select * from urunler",conn); conn.Open(); SqlDataReader rd = com.ExecuteReader(); DataList1.DataSource = rd; DataList1.DataBind();
Merhabalar, Kodu inceledim biraz. Aslında çözümün çok basit hatta kendin de zaten açıklamışsın.
Anladığım kadarıyla querystring ile kategoriyi yakalıyorsun. Burada yapman gereken TreeNode oluştururken Text ve Value vermen. Yani Kategori Adını ve ID sini vermen.
void kategori(TreeNode node, DataRowCollection col) { foreach (DataRow row in col) { // burada TreeNode oluştururken sadece text vermişsin // eski kod //TreeNode tn = new TreeNode(row[1].ToString()); //Yeni Kod TreeNode tn = new TreeNode(row[1].ToString(),row[x].ToString()); // burada row[x] kısmına KategoriID nin denk geldiği index i vereceksin. Burada bir tavsiyem index olarak verme bu kısımlar. Kolon Adı ile de verebiliyorsun yani row["ID"], row["Adi"] şeklinde. Bunu tavsiye etme sebebim ileride yeni bir kolon eklersen bu tablona. bu indexleri değiştirmen gerekebilir. yani işini uzatır bu da.
//sonra navigate url kısmına da node a verdiğin text değil de value kısmını verdiğin zaman artık querystring de ID ni göndermiş olacaksın. //eski kod //tn.NavigateUrl = "Default.aspx?CatID=" + tn.Text; //yeni kod //tn.NavigateUrl = "Default.aspx?CatID=" + tn.Value; } }