首页
ASP教程
PHP教程
.NET教程
MSSQL教程
Mysql教程
Html/Css
JavaScript
Dreamweaver
站长
当前位置:
首页
>>
.Net技术问答1
>>
.Net问答2
>>TreeView控件的节点文本如何实现自动换行输出?
TreeView控件的节点文本如何实现自动换行输出?
问: 我的TreeView放在一个类似导航栏的页面左侧的ascx控件中,节点文本过长就把ascx的表格撑大了,因此想自动换行输出,如果在页面写固定不变的节点文本的话可以识别<br>,这样写就成了:<treenode Text="xxx<br>yyy" />。可是我要从xml数据岛中读取数据,动态生成treeview,而xml中不能这样写:<treenode Text="xxx<br>yyy" />,请教大家怎么解决。另外是不是动态生成treeview要想从数据库中读取数据必须经过xml才能作 treeview的treeNoeSrc? 谢谢! ______________________________________________________________________________________________ 答1: 没人能回答么?自己顶一下! ______________________________________________________________________________________________ 答2: 做个转换把,把XML存放的数据Html编码转换一下retVal.Replace(""", "\""); retVal.Replace("<", "<"); retVal.Replace(">", ">"); 读取的时候然后最后放在表示页面中以前又逆向转换一下。 ______________________________________________________________________________________________ 答3: 另外是不是动态生成treeview要想从数据库中读取数据必须经过xml才能作 treeview的treeNoeSrc?这是谁说的? private void Page_Load(object sender, System.EventArgs e) { tv.Target = "mainFrame"; tv.ImageUrl = "/webctrl_client/1_0/images/folder.gif"; tv.SelectedImageUrl = "/webctrl_client/1_0/images/folderopen.gif"; tv.ExpandedImageUrl = "/webctrl_client/1_0/images/folderopen.gif"; tv.ID = "root"; TreeNode tnLocation = new TreeNode(); TreeNodeAdd(tnLocation, "区域", "AdminLocation.aspx"); Tower tower = new Tower(); DataTable dtTower = tower.GetAll(); foreach(DataRow drTower in dtTower.Rows) { Floor floor = new Floor(); int towerId = (int) drTower["TowerId"]; DataTable dtFloor = floor.GetByTowerId(towerId); TreeNode tnTower = new TreeNode(); tnTower.Text = drTower["TowerName"].ToString(); tnTower.NavigateUrl = "AdminTower.aspx?TowerId=" + drTower["TowerId"]; //tnTower.NavigateUrl = "hello"; TreeNodeAdd(tnTower, tnLocation); foreach (DataRow drFloor in dtFloor.Rows) { Room room; TreeNode tnFloor; int floorId; DataTable dtRoom; floorId = (int) drFloor["FloorId"]; room = new Room(); dtRoom = room.GetByFloorId(floorId); tnFloor = new TreeNode(); tnFloor.Text = drFloor["FloorName"].ToString(); tnFloor.NavigateUrl = "AdminFloor.aspx?TowerId=" + drTower["TowerId"] + "&FloorId=" + drFloor["FloorId"]; TreeNodeAdd(tnFloor, tnTower); foreach (DataRow drRoom in dtRoom.Rows) { TreeNode tnRoom = new TreeNode(); tnRoom.Text = drRoom["RoomName"].ToString(); tnRoom.NavigateUrl = "AdminRoom.aspx?TowerId=" + drTower["TowerId"] + "&FloorId=" + drFloor["FloorId"] + "&RoomId=" + drRoom["RoomId"]; TreeNodeAdd(tnRoom, tnFloor); } } }// end foreach BuildAdminRoot(); } /// <summary> /// 根节点添加 /// </summary> /// <param name="tn"></param> private void TreeNodeAdd(TreeNode tn) { tv.Nodes.Add(tn); } /// <summary> /// 根节点添加 /// </summary> /// <param name="tn"></param> private void TreeNodeAdd(TreeNode tn, string text, string url) { tn.Text = text; tn.NavigateUrl = url; tv.Nodes.Add(tn); tn.Expanded = true; } /// <summary> /// 子节点添加 /// </summary> private void TreeNodeAdd(TreeNode childNode, TreeNode parentNode, string childNodeText, string childNodeUrl) { childNode.Text = childNodeText; childNode.NavigateUrl = childNodeUrl; parentNode.Nodes.Add(childNode); } /// <summary> /// 子节点添加 /// </summary> private void TreeNodeAdd(TreeNode childNode, TreeNode parentNode) { parentNode.Nodes.Add(childNode); } /// <summary> /// 生成管理根树 /// </summary> private void BuildAdminRoot() { TreeNode tnManager = new TreeNode(); TreeNode tnSecurity = new TreeNode(); TreeNode tnUserAdmin = new TreeNode(); TreeNode tnRoleAdmin = new TreeNode(); TreeNode tnPermissionAdmin = new TreeNode(); tnManager.Text = "管理"; tnSecurity.Text = "安全"; tnUserAdmin.Text = "用户管理"; tnUserAdmin.NavigateUrl = "AdminUser.aspx"; tnRoleAdmin.Text = "角色管理"; tnRoleAdmin.NavigateUrl = "AdminRole.aspx"; tnPermissionAdmin.Text = "许可管理"; tnPermissionAdmin.NavigateUrl = "AdminPermission.aspx"; TreeNodeAdd(tnManager); TreeNodeAdd(tnSecurity, tnManager); TreeNodeAdd(tnUserAdmin, tnSecurity); TreeNodeAdd(tnRoleAdmin, tnSecurity); TreeNodeAdd(tnPermissionAdmin, tnSecurity); tv.SelectedNodeIndex = "0.0"; } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } ______________________________________________________________________________________________ 答4: 用ascx真的很好吗 ? 用传统的FrameSet 比如现在CSDN 这样的树不是很好吗? ______________________________________________________________________________________________ 答5: 定义了ascx控件的height和width以后就可以像csdn这样出现滚动条了,谢谢你! ______________________________________________________________________________________________ 答6: :)
copyright 2004-2009
www.qqcf.com
all rights reserved. DIV+CSS架构
本站为学习性免费网站,没有任何商业性质,甚至连一个外部广告都没有投放
所有文章均来源于互联网,如发现有侵权,请来信告知,本站将会以最快的速度删除和改正,E-Mail:cftop@qq.com