我放了一个TreeView控件.各节点的NavigateUrl未设置,在
SelectedNodeChanged中编写代码.能过TreeView1.SelectedNode获取点击的节点的值并执行相关操作.
问题:当树的同一父节点下有几个同层次的节点时,点击其它节点,其选中的都是第一个子节点,怎么办??如图: A
|_B
| |
C E
| |
| F
D 如果单击C或D,SelectedNode取得选中的值是A,如果单击E或F,SelectedNode或得的值是B,单击A获得A值,单击B获得B值.怎么办?
请多多指教,谢谢
SelectedNodeChanged中编写代码.能过TreeView1.SelectedNode获取点击的节点的值并执行相关操作.
问题:当树的同一父节点下有几个同层次的节点时,点击其它节点,其选中的都是第一个子节点,怎么办??如图: A
|_B
| |
C E
| |
| F
D 如果单击C或D,SelectedNode取得选中的值是A,如果单击E或F,SelectedNode或得的值是B,单击A获得A值,单击B获得B值.怎么办?
请多多指教,谢谢
protected void Page_Init(object sender, EventArgs e)
{
TreeView tV = (TreeView)Page.Master.FindControl("TrvOrg");
if (tV != null)
tV.SelectedNodeChanged += TrvChanged;
}
protected void TrvChanged(object sender, EventArgs e)
{
if (mvContent.ActiveViewIndex != 0)
mvContent.ActiveViewIndex = 0;
TreeView tV = (TreeView)Page.Master.FindControl("TrvOrg");
if (tV != null)
{
if (tV.SelectedNode != null)
gvOrg.DataSource = HrSSystem.SSystem.GetOrgs(tV.SelectedNode.ToolTip);
else
gvOrg.DataSource = HrSSystem.SSystem.GetOrgs("");
gvOrg.DataBind();
gvOrg.Caption = tV.SelectedNode.Text + "-子机构列表";
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TreeView tV = (TreeView)Page.Master.FindControl("TrvOrg");
if (tV != null)
HrSSystem.SSystem.FillTreeOrgs(tV, HttpContext.Current.User.Identity.Name);
}
}
单击各节点时都触发事件:
SelectedNodeChanged事件
在事件中加如 label1.text=TreeView1.selectedNode.text;当单击C或D触发事件时 label1.text获得的值是节点A的Text;(我想要的就是单击C得C的值,单击D得D的值)
当单击E或F时~` label1.text获得的值是节点B的Text; (同上)明白了没有?
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
if (TreeView1.SelectedNode.Parent != null)
Response.Write(TreeView1.SelectedNode.Parent.ChildNodes[0].Value);
else
Response.Write(TreeView1.Nodes[0].Value);
}
你明搞明白啊.我要的是点击什么就得什么值,现在是不论点击什么节点得到的是同层次的第一个节点的值
{
if (mvContent.ActiveViewIndex != 0)
mvContent.ActiveViewIndex = 0;
TreeView tV = (TreeView)Page.Master.FindControl("TrvOrg"); //这句改成TreeView tV = sender as TreeView;试试
if (tV != null)
{
if (tV.SelectedNode != null)
gvOrg.DataSource = HrSSystem.SSystem.GetOrgs(tV.SelectedNode.ToolTip);
else
gvOrg.DataSource = HrSSystem.SSystem.GetOrgs("");
gvOrg.DataBind();
gvOrg.Caption = tV.SelectedNode.Text + "-子机构列表";
}
}
可惜自己摸出来的搞了好久.谢谢大家