Buongiorno a tutti.
Ho un treeview e un datalist che se clicco sul datalist mi espande i nodi del treeview e mi seleziona il prodotto e viceversa avviene con il treeview.
Il problema è che se io ho cliccato su uno dei due e dopo faccio refresh della pagina non rimane memorizzata la selezione.
Questo è il codice che ho scritto:
e questo il datalist:codice:public void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { int riferimento = Convert.ToInt32(TreeView1.SelectedNode.Value); int numpro = GetProdottoFromCatalogo(riferimento); if (numpro > 0) { DataCaches.BigData.prodotti.SetProdotto(numpro, DataCaches.ProdottoReader); } new ProdottiRecentiDataAccess().AddProdotto(this.User.Identity.Name, numpro, riferimento); SelectItem(riferimento); string node = TreeView1.SelectedNode.Value; ProdRecenti.DataKeyField = "Key"; ProdRecenti.DataMember = "Value"; ProdRecenti.DataSource = GetProdottiDataSource(); ProdRecenti.DataBind(); if ((numpro > 0) && (node != null)) { ProdRecenti.SelectedIndex = getIndexFromValue(numpro.ToString() + ":" + node); } }
codice:public void ProdRecenti_Click(object sender, EventArgs e) { LinkButton b = sender as LinkButton; string[] parts = b.CommandArgument.Split("/".ToCharArray()); string indexStr = parts[0]; string key = parts[1]; ProdRecenti.SelectedIndex = Convert.ToInt32(indexStr); KeyValuePair<int, int> kvp = UnpackProdottoKey(key); DataCaches.BigData.prodotti.SetProdotto(kvp.Key, DataCaches.ProdottoReader); new ProdottiRecentiDataAccess().AddProdotto(this.User.Identity.Name, kvp.Key, kvp.Value); // cerco l'elemento del catalogo! string catpath = ""; ICatalogo cat = DataCaches.CatalogoReader.read(41); ElementoCatalogo el = cat[kvp.Value]; while (el != null) { if (catpath.Length != 0) catpath = "/" + catpath; catpath = el.Riferimento.ToString() + catpath; el = cat.GetParent(el); } foreach (TreeNode n in TreeView1.Nodes) Unselect(n); if (catpath.Length > 0) { TreeNode n = TreeView1.FindNode(catpath); if (n != null) { n.Selected = true; for (n = n.Parent; n != null; n = n.Parent) n.Expand(); } } }![]()

Rispondi quotando