我现在要做一个treeview动态绑定数据库表中的内容,表结构如下:
s_kmbm(科目编码) i_wdid(网点) i_grade(科目级别) s_bm1(编码1) s_bm2(编码2) s_bm3 s_bm4 s_bm5
101 0 1 101 null null null null
10101 1 2 101 01 null null null
102 1 1 102 null null null null
10201 1 2 102 01 null null null
其中i_grade是用来判别节点类型的.
请问各位高手如何实现绑定treeview的功能,实现树形目录树.
s_kmbm值是根据s_bm1,s_bm2,s_bm3,s_bm4,s_bm5这5列的值而来的即下面的简写表达式:
s_kmbm=s_bm1+s_bm2+s_bm3+s_bm4+s_bm5
i_grade是int类型,它是判断划分级别的依据.
s_bm1,s_bm2,s_bm3,s_bm4,s_bm5这5列值内容的长度是固定的么?
比如说s_bm1长度都是3位么1.节点的text显示s_kmbm的值,
2. i_grade=1时,s_bm2,s_bm3,s_bm4,s_bm5都是null请各位高手帮帮忙!!!!!!
s_kmbm(科目编码) i_wdid(网点) i_grade(科目级别) s_bm1(编码1) s_bm2(编码2) s_bm3 s_bm4 s_bm5
101 0 1 101 null null null null
10101 1 2 101 01 null null null
102 1 1 102 null null null null
10201 1 2 102 01 null null null
其中i_grade是用来判别节点类型的.
请问各位高手如何实现绑定treeview的功能,实现树形目录树.
s_kmbm值是根据s_bm1,s_bm2,s_bm3,s_bm4,s_bm5这5列的值而来的即下面的简写表达式:
s_kmbm=s_bm1+s_bm2+s_bm3+s_bm4+s_bm5
i_grade是int类型,它是判断划分级别的依据.
s_bm1,s_bm2,s_bm3,s_bm4,s_bm5这5列值内容的长度是固定的么?
比如说s_bm1长度都是3位么1.节点的text显示s_kmbm的值,
2. i_grade=1时,s_bm2,s_bm3,s_bm4,s_bm5都是null请各位高手帮帮忙!!!!!!
解决方案 »
- asp 统计访问量的小程序执行不出来。。。
- localhost和127.0.0.1无法访问,静态页面可以访问,怎么回事???
- 请大家进来帮帮忙
- 如何在vs2005把aspx.cs封装成dll文件?
- 靠,今天发现个大问题,有人研究过么?
- ##--SQL存储过程是什么意思啊。。买了一本书没有学过SQL怎么办
- 关于duwamish中PageBase的SecureUrlBase的作用?
- FileUpload控件上传图片
- datagrid一个问题?
- 类型ID+aspx 这样的分类怎么样实现
- 如何EXCEL导入GridwView,再插入或更新到SQL数据
- 求类是qq号申请的无刷新注册源代码,例如http://freereg.qq.com/
记住两点:
1、利用程序遍历绑定
2、利用自定义层叠数据源绑定。这个比较复杂点。第1个例子:[code language="C#"]
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySoft.Assist;
using MySoft.Entity;
using MySoft.LogicLayer;
public partial class Management_Menu : Templete
{
protected void Page_Load(object sender, EventArgs e)
{
string strAction = "";
try
{
strAction = Request.QueryString["action"].ToString();
if (strAction == "exit")
{
Session.Clear();
Session.Abandon();
string str = "alert(\"成功退出!\");";
str += "top.location = top.location;";
PageTools.ExecJS(str);
}
}
catch
{ }
if (!Page.IsPostBack)
{
InitializeTree();
NewsInfoBL.CreateXmlWebSite();
}
} DataView dvChannel = null;
private void InitializeTree()
{
tv_ChannelInfo.Target = "mainFrame";
tv_ChannelInfo.ShowExpandCollapse = true; TreeNode mainnode = null;
mainnode = new TreeNode();
mainnode.Text = "网站后台管理系统";
//mainnode.Target = "";
mainnode.NavigateUrl = "javascript:void(0)";
mainnode.Expanded = true;
mainnode.Value = "0";
tv_ChannelInfo.Nodes.Add(mainnode); ChannelInfo info = new ChannelInfo();
ChannelInfoBL channel = new ChannelInfoBL(info);
dvChannel = channel.GetChannelInfo().DefaultView;
InitializeSubNode(mainnode);
TreeNode subnode = null; subnode = new TreeNode("页面生成");
subnode.NavigateUrl = "CreateStaticHTML.aspx";
mainnode.ChildNodes.Add(subnode); RoleInfo rinfo = new RoleInfo();
rinfo.RoleID = this.ManagerRoleID;
RoleInfoBL role = new RoleInfoBL();
rinfo = role.GetRoleInfo(rinfo);
if (rinfo.RoleGrade >1)
{
subnode = new TreeNode("广告管理");
subnode.NavigateUrl = "ADManagemetn.aspx";
mainnode.ChildNodes.Add(subnode); subnode = new TreeNode("友情链接");
subnode.NavigateUrl = "FrientLink.aspx";
mainnode.ChildNodes.Add(subnode);
if (rinfo.RoleGrade > 2)
{
subnode = new TreeNode("栏目管理");
subnode.NavigateUrl = "ChannelInfo.aspx";
mainnode.ChildNodes.Add(subnode); subnode = new TreeNode("用户管理");
subnode.NavigateUrl = "UserInfo.aspx";
mainnode.ChildNodes.Add(subnode);
subnode = new TreeNode("用户组管理");
subnode.NavigateUrl = "RoleInfo.aspx";
mainnode.ChildNodes.Add(subnode);
} subnode = new TreeNode("日志维护");
subnode.NavigateUrl = "LogInfo.aspx";
mainnode.ChildNodes.Add(subnode);
} subnode = new TreeNode("退出登录");
subnode.Target = "_top";
subnode.NavigateUrl = "?action=exit";
mainnode.ChildNodes.Add(subnode);
} private void InitializeSubNode(TreeNode ParentNode)
{
//dvChannel.RowFilter = "ChannelParentID=" + ParentNode.Value;
TreeNode SubNode = null;
foreach (DataRowView dr in dvChannel)
{
if ((Convert.ToInt32(dr.Row["ChannelAccess"].ToString())&this.ManagerRoleID)!=this.ManagerRoleID)
continue;
if (Convert.ToString(dr.Row["ChannelExtUrl"]).Length>0)
continue;
if (dr.Row["ChannelParentID"].ToString() != ParentNode.Value)
continue;
SubNode = new TreeNode();
SubNode.Text = dr.Row["ChannelTitle"].ToString();
ParentNode.NavigateUrl = "";
ParentNode.SelectAction = TreeNodeSelectAction.Expand;
SubNode.NavigateUrl = "NewsList.aspx?ChannelID=" + dr.Row["ChannelID"].ToString();
SubNode.Value = dr.Row["ChannelID"].ToString();
InitializeSubNode(SubNode);
ParentNode.ChildNodes.Add(SubNode);
}
}
}[code]
http://sxlfybb.cnblogs.com 里面专门有篇文章说这个的。
非要用的话可以递归调用生成树,是Coder都会写-_-