我有个树,要根据一个编码规则来形成,如果编号是二位的长度,则是父节点如果编号是四位长度,则是子节点。这样,怎么生成一个树?树旁边有一个复选框怎么判断选择的是哪一个?
解决方案 »
- winform datagridview 下拉框事件问题
- 【急求】一个简单的上传图片及显示问题,谢
- 关于c#解析json的问题
- 如何判断四个文件的大小
- 如何用c#做出类似nero那种添加文件/夹的对话框呢?
- nhibernate简单问题,大家帮忙!
- ***********100分,求助,c# 中如何固定窗体大小??******************
- -------------这条生成.dll的文件的命令有错吗?错在哪里呀?------------
- 视频开发问题?????????????????????????????????????
- 求控件可以在FORM面板上随意拖动移动位置的源程序
- 再问个DataGirdView显示的问题!
- 怎么找一个zip文件里所有的.xml文件?
判断字串长度
2 -> 新节点加入到root下
4 -> 新节点加入到已存在节点下
TreeNode open = new TreeNode();
open.Value = "11";
open.Text = "11";
TreeView1.Nodes.Add(open); ---父节点
TreeNode temp = new TreeNode();
temp.Text = "1111";
open.ChildNodes.Add(temp); ---子节点
不过不清楚你的子节点只是加到父节点就OK呢,还是有其他要求 比如 11(父节点)--- 1111 (子节点)
22 ---- 222
选择的话可以通过JS来实现
<script language="javascript" type="text/javascript">
function client_OnTreeNodeChecked()
{
var obj = window.event.srcElement;
var treeNodeFound = false;
var checkedState;
if (obj.tagName == "INPUT" && obj.type == "checkbox") {
var treeNode = obj;
checkedState = treeNode.checked;
do
{
obj = obj.parentElement;
} while (obj.tagName != "TABLE")
var parentTreeLevel = obj.rows[0].cells.length;
var parentTreeNode = obj.rows[0].cells[0];
var tables = obj.parentElement.getElementsByTagName("TABLE");
var numTables = tables.length
if (numTables >= 1)
{
for (i=0; i < numTables; i++)
{
if (tables[i] == obj)
{
treeNodeFound = true;
i++;
if (i == numTables)
{
return;
}
}
if (treeNodeFound == true)
{
var childTreeLevel = tables[i].rows[0].cells.length;
if (childTreeLevel > parentTreeLevel)
{
var cell = tables[i].rows[0].cells[childTreeLevel - 1];
var inputs = cell.getElementsByTagName("INPUT");
inputs[0].checked = checkedState;
}
else
{
return;
}
}
}
}
}
}
</script> ------这段选中了树中所选择的复选框 (包括父节点和子节点)
其次是
foreach (TreeNode node in TreeView1.CheckedNodes)
{
this.Lb_Object.Items.Add(new ListItem(node.Text.Trim(), node.Value));
}
我加到一个listbox 中 在这里你可以判断是父节点还是子节点
有点麻烦 ~~~~~~~~~~~~~~呵呵
可惜我要的是winform中的树形结构处理啊!