public void AddTree(int ParentID,TreeNode pNode) 
{
DataSet ds=(DataSet) this.ViewState["ds"]; 
DataView dvTree =new DataView(ds.Tables[0]);
//dvTree.rRowFilter="[id]="+ ParentID;
foreach(DataRowView Row in dvTree)
{
TreeNode Node=new TreeNode();
if(pNode==null)
{
Node.Text=Row["category"].ToString();
TreeView2.Nodes.Add(Node);
}
else
{
pNode.Nodes.Add(Node);
}
}
 foreach 语句无法对“WebApplication8.DataView”类型的变量操作,因为“WebApplication8.DataView”不包含“GetEnumerator”的定义,或它是不可访问的
C:\Inetpub\wwwroot\WebApplication8\WebForm11.aspx.cs(59): 重载“DataView”方法未获取“1”参数

解决方案 »

  1.   

    foreach 语句无法对“WebApplication8.DataView”类型的变量操作,因为“WebApplication8.DataView”不包含“GetEnumerator”的定义,或它是不可访问的
    =========================
    不已经说的和明白了吗?
    C:\Inetpub\wwwroot\WebApplication8\WebForm11.aspx.cs(59): 重载“DataView”方法未获取“1”参数 
    ==========================
    参数不匹配,也就是可能是需要两个参数的,你只传了一个参数
      

  2.   

    DataView dvTree =new DataView(ds.Tables[0]); 
    =================
    DataView dvTree =ds.Tables[0].DefaultView; 
      

  3.   

    给你一个递归生成树的方法吧
    =====================#region 生成知识点树
        /// <summary>
        /// 生成知识点树
        /// </summary>
        private void ShowKnowDotTree()
        {
            try
            {
                InterService.TestBll.TestKnowDotBz tkdb = new InterService.TestBll.TestKnowDotBz();
                dt = tkdb.getData(_kmID);
            }
            catch (Exception ex) //如果出现异常,则提示用户
            {
                InterService.Utility.Utils.throwErrorAndClose("生成知识点树失败:" + ex.Message,"parent");
                return;
            }
            if (dt.Rows.Count == 0) //如果为空,则说明当前科目下没有相应的知识点
            {
                InterService.Utility.Utils.throwErrorAndClose("不存在该科目下的知识点,请先新建知识点","parent");
                return;
            }
            else
            {
                TreeNode node = new TreeNode();
                DataRow[] dr = dt.Select("I_ParentID=0", "I_OrderID");//筛选得到所有的根结点
                this.KnowDotTreeView.ShowLines = true;
                BindKnowDotTree(dr, node);
            }    }
        /// <summary>
        /// 递归生成知识点树
        /// </summary>
        /// <param name="dr">DataRow[]数组,经过DataTable.Select筛选</param>
        /// <param name="node">当前节点</param>
        private void BindKnowDotTree(DataRow[] dr, TreeNode node)
        {
            foreach (DataRow dr1 in dr)
            {
                if (dr1["I_ParentID"].ToString() == "0")//如果是根结点,添加到TreeView控件
                {
                    TreeNode node1 = new TreeNode();
                    node1.Text = dr1["C_KDName"].ToString();
                    node1.Value = dr1["I_ParentID"].ToString();
                    if (dr1["C_ChildIDs"].ToString().Trim() != "")//判断是否含有子结点,如果有,提示:“请选择具体的知识点”
                    {
                        node1.NavigateUrl = "javascript:alert('请选择具体的知识点');";
                    }
                    else
                    {
                        node1.NavigateUrl = "javascript:parent.main.form1.txtKnowDot.value='" + dr1["C_KDName"].ToString() + "';parent.main.form1.txtKDID.value='" + dr1["I_KDID"].ToString() + "';parent.main.form1.HKDCode.value='" + dr1["C_KDCode"].ToString() + "';";
                    }
                    node1.Target = "top";
                    this.KnowDotTreeView.Nodes.Add(node1);
                    BindKnowDotTree(dt.Select("I_ParentID=" + dr1["I_KDID"].ToString(), "I_OrderID"), node1);//递归生成子树
                }
                else//否则添加到当前结点
                {
                    TreeNode node1 = new TreeNode();
                    node1.Text = dr1["C_KDName"].ToString();
                    node1.Value = dr1["I_ParentID"].ToString();
                    if (dr1["C_ChildIDs"].ToString().Trim() != "")
                    {
                        node1.NavigateUrl = "javascript:alert('请选择具体的知识点');";
                    }
                    else
                    {
                        node1.NavigateUrl = "javascript:parent.main.form1.txtKnowDot.value='" + dr1["C_KDName"].ToString() + "';parent.main.form1.txtKDID.value='" + dr1["I_KDID"].ToString() + "';parent.main.form1.HKDCode.value='" + dr1["C_KDCode"].ToString() + "';";
                    }
                    node1.Target = "top";
                    node.ChildNodes.Add(node1);
                    BindKnowDotTree(dt.Select("I_ParentID=" + dr1["I_KDID"].ToString(), "I_OrderID"), node1);//递归生成子树
                }
            }
        }
        #endregion