关于获取点击treeview的节点信息的问题
calum 2008-02-19 09:34:30 我在default.aspx中有一个treeview1,点击treeview1的节点时,会导航到该节点对应的页面,但是我获取不到这个节点的信息,比如我在SQL2005中的数据库是这样的
在booktree表中
id pid name url
1 0 图书
2 1 小说 ../book.aspx
3 .. .. ..
treeview1的点击代码如下
protected void treeview1_SelectedNodeChanged(object sender, EventArgs e)
{
string strSelect = treeview1.SelectedNode.Value.ToString();
Session["selected"] = strSelect.ToString();
}
当我点击treeview的节点"小说"时就自动导航到book.aspx,但是获取不到该节点的值,也就是说上面的事件并没有发生,为了验证这个说法,我在另外一个页面test.aspx中添加了获取Session["selected"]的代码,运行程序之后,我先点击了父节点"图书",然后手动转到test.aspx,是可以获取到Session["selected"]的。
我创建treeview的代码如下:
public void AddTree(int ParentID, TreeNode pNode)
{
DataSet ds = (DataSet)this.ViewState["ds"];
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
treeview1.RowFilter = "pid = " + ParentID;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{ //添加根节点
Node.Text = Row["name"].ToString();
Node.NavigateUrl = Row["url"].ToString();
treeview1.Nodes.Add(Node);
Node.Expanded = true; //获取或设置一个值,该值指示是否展开节点。
AddTree(Int32.Parse(Row["id"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
Node.Text = Row["name"].ToString();
Node.NavigateUrl = Row["url"].ToString();
pNode.ChildNodes.Add(Node);
Node.Expanded = true; //获取或设置一个值,该值指示是否展开节点。
AddTree(Int32.Parse(Row["id"].ToString()), Node); //再次递归
}
}
}
请问我应该怎么做才能在自动导航到的页面中获取Session["selected"]的值?