TreeView怎么绑定sql的数据啊!!!!!

a62520161 2011-12-09 12:32:15
sql里有两张表FL(id,name,)Usr(id,username,FLid)FLid对应FL表的id
现在想在TreeView的父节点显示FL的name,子节点显示Usr的username(FLid对应父节点的id)
这个要怎么做啊!!!!!!!

最好能给这个例子的代码!!!!谢谢了!!!!!!!!





还有点击子节点跳转到别的页面的事件在哪写
...全文
233 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
string rls = "";
string[] arrRls = Roles.GetRolesForUser();
for (int n = 0; n < arrRls.Length; n++)
{
if (rls.Trim() == "")
{
rls = "'" + arrRls[n].ToUpper() + "'";
}
else
{
rls += "," + "'" + arrRls[n].ToUpper() + "'";
}
}

dtSetA = mySql.LoadDataSet("SELECT * FROM SITEMAP WHERE UPPER(ROLES) IN(" + rls + ")");
TreeNode RootNod = new TreeNode("1", "ROOT");
this.TreeView1.Nodes.Add(RootNod);
InitTree(TreeView1.Nodes[0].ChildNodes, "1");
}

private void InitTree(TreeNodeCollection Nds, string parentId)
{
DataView dv = new DataView();
TreeNode tmpNd;
//string intId;
dv.Table = dtSetA.Tables[0];
dv.RowFilter = "PNODE='" + parentId + "'";
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Value = drv["RKEY"].ToString();
tmpNd.Text = drv["TITLE"].ToString();
tmpNd.NavigateUrl = "default.aspx?id=" + drv["RKEY"].ToString();
tmpNd.Target = "window.parent";
//tmpNd.ImageUrl = "images/" + drv["Icon"].ToString();
Nds.Add(tmpNd);
// intId = drv["ParentId"].ToString();
InitTree(tmpNd.ChildNodes, tmpNd.Value);
}
}
a62520161 2011-12-09
  • 打赏
  • 举报
回复
恩!!解决了
<script runat="server">
void Select_Change(Object sender, EventArgs e)
{

Label1.Text = "选择: " + TreeView1.SelectedNode.Text;


}

</script>
在次感谢了!!!!!!!!
暖枫无敌 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 a62520161 的回复:]

TreeView1控件要设什么属性吗?
[/Quote]
你要干嘛?是导向另一个页面嘛?
是的话,有NavigateUrl属性可以使用。
a62520161 2011-12-09
  • 打赏
  • 举报
回复
TreeView1控件要设什么属性吗?
a62520161 2011-12-09
  • 打赏
  • 举报
回复
我这是b/s架构的引用了System.Windows.Forms后
private void treeView1_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
//string name = TreeView1.SelectedNode.Text;
//MessageBox.Show(string.Format("选中了节点{0}", name));
//根据取得的节点值,进行其他操作,如数据绑定等等,根据你需要自己写相关代码即可
Label1.Text = "ddddd";
}
单击节点没有触发这事件
暖枫无敌 2011-12-09
  • 打赏
  • 举报
回复

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
string name = treeView1.SelectedNode.Text;
MessageBox.Show(string .Format ("选中了节点{0}",name ));
//根据取得的节点值,进行其他操作,如数据绑定等等,根据你需要自己写相关代码即可
}
暖枫无敌 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 a62520161 的回复:]

非常感谢大家的帮助!!!特别感谢5楼!!那点击用户后的事件在哪写啊?
[/Quote]
根据需要处理
AfterSelect、Click等事件
a62520161 2011-12-09
  • 打赏
  • 举报
回复
非常感谢大家的帮助!!!特别感谢5楼!!那点击用户后的事件在哪写啊?
暖枫无敌 2011-12-09
  • 打赏
  • 举报
回复
跟以前我帮别人做的demo很类似,你参考一下:
http://blog.csdn.net/taomanman/article/details/6561233
a62520161 2011-12-09
  • 打赏
  • 举报
回复
最好是能给我问题的那例子代码。
a62520161 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lixuezhi 的回复:]

protected void Page_Load(object sender, EventArgs e)
{
string rls = "";
string[] arrRls = Roles.GetRolesForUser();
for (int n = 0; n < arrRls.Length; n++)
{
……
[/Quote]
能给个详细解释吗?dtSetA和mySql、rls是什么啊??
烟波钓 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lixuezhi 的回复:]
protected void Page_Load(object sender, EventArgs e)
{
string rls = "";
string[] arrRls = Roles.GetRolesForUser();
for (int n = 0; n < arrRls.Length; n++)
{
if (rls.Trim() == "")
……
[/Quote]+
2.在treeview节点的单机事件中 若没有就在treeview的单击事件中

110,534

社区成员

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

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

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