怎样将TreeView写入DataTable高手请帮忙
怎样将TreeView写入DataTable
表中有3个字段 strID,strText,strParentID,
strID,strText可以分别取TreeNode的ID属性和Text属性,strParentID想取父节点的TreeNode.ID可是不知道怎么实现大致代码如下:
foreach(TreeNode tmpNd in Nds)
{
DataRow dr = dt.NewRow();
dr[strID] = tmpNd.ID;
dr[strText] = tmpNd.Text;
dr[ParentID] = Nds.ToString();
dt.Rows.Add(dr);
FillNodes(dt,tmpNd.Nodes,tmpNd.ID,tmpNd.Text,tmpNd.ID);
}
}
可是这个得到的结果不正确啊,有没有高人帮我修改一下 谢谢了,如果分不够可以再+++
------解决方案--------------------up一下
------解决方案--------------------说说哪里不对,完整的代码写一下,还有Nds.ToString();能得到父节点的id吗
------解决方案--------------------用当前节点的NodeData属性记录其父节点的ID,具体如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
populatetree();
//建立dt用于保存strId, strText, strParentId;
createtable();
}
}
private static DataTable dt;
private void createtable()
{
DataColumn col;
dt = new DataTable();
col = new DataColumn( "strId ");
dt.Columns.Add(col);
col = new DataColumn( "strText ");
dt.Columns.Add(col);
col = new DataColumn( "strParentId ");
dt.Columns.Add(col);
}
private void fillnode(Microsoft.Web.UI.WebControls.TreeNodeCollection nodes)
{
foreach (Microsoft.Web.UI.WebControls.TreeNode node in nodes )
{
DataRow dr = dt.NewRow();
dr[0] = node.ID;
dr[1] = node.Text ;
dr[2] = node.NodeData;
dt.Rows.Add(dr);
fillnode(node.Nodes);
}
}
private void write()
{
for (int i = 0; i < dt.Rows.Count; i++)
{
Response.Write(i.ToString() + ". " + " " + dt.Rows[i][ "strId "] + " " + dt.Rows[i][ "strText "] + " " + dt.Rows[i][ "strParentId "] + " <br> ");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
dt.Clear();
//取得所有节点信息保存到dt
fillnode(tree.Nodes);
//显示dt中所有数据
write();
}