如上图:三个表,循环生成树。下面是主要的循环代码。但是编译的时候报错:制定的参数超出有效值,参数名:index请高人指教!
try
{
for (int i = 0; i < ds.Tables["OneTree"].Rows.Count; i++)
{
this.DPeiTView.Nodes.Add("" + ds.Tables["OneTree"].Rows[i][0].ToString() + "");
for (int j = 0; j < ds.Tables["TwoTree"].Rows.Count; j++)
{
if (ds.Tables["TwoTree"].Rows[j][0].ToString() == ds.Tables["OneTree"].Rows[i][0].ToString())
{
this.DPeiTView.Nodes[i].Nodes.Add("" + ds.Tables["TwoTree"].Rows[j][1].ToString() + "");
for (int k = 0; k < ds.Tables["ThreeTree"].Rows.Count; k++)
{
if ((ds.Tables["ThreeTree"].Rows[k][0].ToString() == ds.Tables["TwoTree"].Rows[j][0].ToString()) && (ds.Tables["ThreeTree"].Rows[k][1].ToString() == ds.Tables["TwoTree"].Rows[j][1].ToString()))
{
this.DPeiTView.Nodes[i].Nodes[j].Nodes.Add("" + ds.Tables["ThreeTree"].Rows[k][2].ToString() + "");
}
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
try
{
for (int i = 0; i < ds.Tables["OneTree"].Rows.Count; i++)
{
this.DPeiTView.Nodes.Add("" + ds.Tables["OneTree"].Rows[i][0].ToString() + "");
for (int j = 0; j < ds.Tables["TwoTree"].Rows.Count; j++)
{
if (ds.Tables["TwoTree"].Rows[j][0].ToString() == ds.Tables["OneTree"].Rows[i][0].ToString())
{
this.DPeiTView.Nodes[i].Nodes.Add("" + ds.Tables["TwoTree"].Rows[j][1].ToString() + "");
for (int k = 0; k < ds.Tables["ThreeTree"].Rows.Count; k++)
{
if ((ds.Tables["ThreeTree"].Rows[k][0].ToString() == ds.Tables["TwoTree"].Rows[j][0].ToString()) && (ds.Tables["ThreeTree"].Rows[k][1].ToString() == ds.Tables["TwoTree"].Rows[j][1].ToString()))
{
this.DPeiTView.Nodes[i].Nodes[j].Nodes.Add("" + ds.Tables["ThreeTree"].Rows[k][2].ToString() + "");
}
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
for (int i = 0; i < ds.Tables["OneTree"].Rows.Count; i++)
{
this.DPeiTView.Nodes.Add("" + ds.Tables["OneTree"].Rows[i][0].ToString() + "");为中部分为
var iNode = this.DPeiTView.Nodes.Add("" + ds.Tables["OneTree"].Rows[i][0].ToString() + "");及
if (ds.Tables["TwoTree"].Rows[j][0].ToString() == ds.Tables["OneTree"].Rows[i][0].ToString())
{
this.DPeiTView.Nodes[i].Nodes.Add("" + ds.Tables["TwoTree"].Rows[j][1].ToString() + "");部分为:
iNode.Nodes.Add("" + ds.Tables["TwoTree"].Rows[j][1].ToString() + "");试试。
按照你说的,还是一样的错误提示。
或F11单步看看值
public class Department
{
public string name { get; set; }
public string code {get;set;}
private List<Department> _childdepartment = new List<Department>();
public List<Department> childDepartment
{
get
{
return _childdepartment ;
}
}
}
public class User
{
public string usrname { get; set; }
}
public static Department GetList()
{
var a = new Department { name = "a", code = "0" };
var b = new Department { name = "b", code = "001" };
var c = new Department { name = "c", code = "002" };
a.ChildDepartment.Add(b);
a.ChildDepartment.Add(c);
return a;
}
treeview
private void BindData(TreeNodeCollection treeNodeCollection, Department dept)
{
var node = new TreeNode { Text =dept.name, Value = dept.code };
treeNodeCollection.Add(node);
if (dept.ChildDepartment.Count > 0)
dept.ChildDepartment.ForEach(p => { BindData(node.ChildNodes, p); });
}
子节点也是同级别的