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”参数
{
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”参数
=========================
不已经说的和明白了吗?
C:\Inetpub\wwwroot\WebApplication8\WebForm11.aspx.cs(59): 重载“DataView”方法未获取“1”参数
==========================
参数不匹配,也就是可能是需要两个参数的,你只传了一个参数
=================
DataView dvTree =ds.Tables[0].DefaultView;
=====================#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