现在的代码是这样的:
/// <summary>
/// 选中获取值事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSure_Click(object sender, EventArgs e)
{
GetCarListJson();
string powerstr = "";
powerstr =getCheckedNodeValue(TreeView1.Nodes);
CarBrand.Value = powerstr;
string Car = CarBrand.Value;
this.RegisterStartupScript("e", "<script language=javascript>parent.GetName('" + Car + "');parent.ymPrompt.close();</script>");
}
public string getCheckedNodeValue(TreeNodeCollection aNodes)
{
string powerstr = "";
for (int i = 0; i < aNodes.Count; i++)
{
if (aNodes[i].Checked == true)
{
powerstr = powerstr + aNodes[i].Text + " ";
}
if (aNodes[i].ChildNodes.Count > 0)
{
powerstr =powerstr+ getCheckedNodeValue(aNodes[i].ChildNodes);
}
}
return powerstr;
}
建议你使用ztree
用JS写的树形结构,各个方面都很好使
重新写的话改动大了。在这个基础上能改不?
@camille繁花: 有效果图么? 看图更直接
@二十三号同学: 我想要得到的就是4和京V026 我现在取得值是所以勾选上的。
@camille繁花: 你可以通过 Depth 值进行限制,
或者找那些没有子节点==null 的节点,就是 叶子节点
@二十三号同学: 什么意思?能具体一点吗?
@camille繁花: 你遍历的时候,只获取 子节点==null 的节点
如果选择了,图上的 余杭区,你可能还要进行转换,解析成叶子节点吧!
@camille繁花:
for (int i = 0; i < aNodes.Count; i++)
{
//aNodes[i].ChildNodes.Count<=0 说明没有子节点了
if (aNodes[i].Checked == true && aNodes[i].ChildNodes.Count<=0)
{
powerstr = powerstr + aNodes[i].Text + " ";
}
if (aNodes[i].ChildNodes.Count > 0)
{
powerstr =powerstr+ getCheckedNodeValue(aNodes[i].ChildNodes);
}
}
@camille繁花: 能行吧?
@二十三号同学: 谢谢!可以了!
@camille繁花: 建议你使用 Ztree
http://www.ztree.me/v3/demo.php#_101
大数据,性能很好,免费开源