TreeView 结点 ID 问题

没花鹿 2010-12-31 10:40:41


private void button39_Click_1(object sender, EventArgs e)//加载人事管理数据
{
//为 TreeView 加载数据:
DataTable dtBu = new DataTable("cc_Bu");
using (SqlDataAdapter sda = new SqlDataAdapter("select * from cc_Bu",sqlConn))
{
sda.Fill(dtBu);
}

TreeNode[] root = new TreeNode[dtBu.Rows.Count];
for (int i = 0; i < dtBu.Rows.Count - 1; i++)
{
root[i] = new TreeNode(dtBu.Rows[i]["name"].ToString());
this.treeView2.Nodes.Add(root[i]);
DrawTreeView(root[i], "cc_bu", int.Parse(dtBu.Rows[i]["id"].ToString()));
}
}


使用时,想用到每个结点的ID值.
请问,该ID怎么在树生成时赋值给结点?
注:我现在只能取其name: string s = e.Node.Text;
...全文
59 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hinada99 2010-12-31
  • 打赏
  • 举报
回复
TreeNode.Name属性 就是节点的 名称,用于在程序中标记引用该对象
TreeNode.Text属性 是节点 的显示文字, 也就是 给用户 看的 文字
没花鹿 2010-12-31
  • 打赏
  • 举报
回复
问题解决了,就用结点的tag属性,哈哈哈,LS接分.
没花鹿 2010-12-31
  • 打赏
  • 举报
回复
貌似有点思路了: 用tag做载体,在试...
没花鹿 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 timzhufaith 的回复:]
id不就是value么
[/Quote]
winform 怎么选出来?
TimZhuFaith 2010-12-31
  • 打赏
  • 举报
回复
id不就是value么
ycproc 2010-12-31
  • 打赏
  • 举报
回复

/// <summary>
/// 给当前节点添加子节点
/// </summary>
/// <param name="node">当前节点</param>
/// <param name="pid">当前节点的ID</param>
protected void AddPages(TreeNode node, string pid)
{
DataSet ds = lm.GetPage(pid);
if (ds != null && ds.Tables.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
TreeNode childnode = new TreeNode();
childnode.Text = dr["BigPageName"].ToString();
childnode.NavigateUrl = "bbsSolution.aspx?PageId=" + dr["PageId"].ToString();
childnode.Target = "mainFrame";
//给当前节点添加子节点
AddPages(childnode, dr["PageId"].ToString());
if (node == null)
{
TreeView1.Nodes.Add(childnode);
}
else
{
node.ChildNodes.Add(childnode);
}
}

}
}
}
Delphi 点击Tree节点的某个选项后,右侧会对应显示出数据信息,左侧的树节点信息从Access数据库读取出来,实际上当我们单击左侧数据的时候,右侧数据同样是从Access数据库读取,只不过关联的ID,就是左侧的数据项,实现这一功能,对应的代码为:   procedure TForm1.TreeView1Click(Sender: TObject);   begin    with ADOQuery2 do    begin    Close;    SQL.Clear;    SQL.Add('Select * From msn where 姓名 =:a');    Parameters.ParamByName('a').Value:=TreeView1.Selected.Text;    Prepared;    open;    end;    if (ADOQuery2.RecordCount>0)and(Treeview1.Selected <> Nil) then    with ADOQuery2 do    begin    Edit1.Text:=ADOQuery2.fieldbyname('ID').AsString;    Edit2.Text:=ADOQuery2.fieldbyname('姓名').AsString;    Combobox1.Text:=ADOQuery2.fieldbyname('性别').AsString;    DatetimePicker1.Date:=ADOQuery2.fieldbyname('出生日期').Value;    Edit3.Text:=ADOQuery2.fieldbyname('民族').AsString;    Edit4.Text:=ADOQuery2.fieldbyname('家庭电话').AsString;    Edit5.Text:=ADOQuery2.fieldbyname('手机号码').AsString;    Edit6.Text:=ADOQuery2.fieldbyname('QQ号码').AsString;    Edit7.Text:=ADOQuery2.fieldbyname('E_mail').AsString;    Memo1.Lines.Text:=ADOQuery2.fieldbyname('备注').AsString;    Combobox2.Text:=ADOQuery2.fieldbyname('类型').AsString;    end;   end;

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧