treeview 显示问题

AsuraLie 2010-11-17 02:45:24
当 TreeView 的某个节点展开后,位于该节点的子节点后的节点将无法显示。
我需要显示完整的树型结构,应该怎么设置呢?
...全文
183 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
AsuraLie 2010-11-18
  • 打赏
  • 举报
回复
问题解决了,是treeview的高度问题,treeview 的高度不能用CSS设,那样没用的,必须直接在属性里设置。。。。。。
AsuraLie 2010-11-18
  • 打赏
  • 举报
回复
难道 你们都不会出现我说的问题么?为啥你们的方法都和我的差不多。。。。。。
hansen_qi_good 2010-11-17
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

using ComponentArt.Web.UI;
public partial class treeView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = databing();
DataRow[] drs = dt.Select("Pranent=''");
foreach (DataRow dr in drs)
{
TreeViewNode tn = new TreeViewNode();
tn.Text = dr["partName"].ToString();
tn.Value = dr["Guid"].ToString();
showsData(tn.Value,tn,dt);
TreeView1.Nodes.Add(tn);
}
}
}
private DataTable databing()
{
string conStr = "server=.;pwd=qihuan;uid=sa;database=wish";
string sql = "select * from temp";
SqlConnection con = new SqlConnection(conStr);
SqlDataAdapter adpt = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
adpt.Fill(dt);
return dt;
}

private void showsData(string parent,TreeViewNode t,DataTable dt)
{
DataRow[] drs = dt.Select("Pranent='" + parent + "'");
foreach (DataRow dr in drs)
{
TreeViewNode tn = new TreeViewNode();
tn.Text = dr["partName"].ToString();
tn.Value = dr["Guid"].ToString();
showsData(tn.Value,tn,dt);
t.Nodes.Add(tn);
}
}

[ComponentArtCallbackMethod]
public bool NodeMove(string id, string destid)
{
string conStr = "server=.;pwd=qihuan;uid=sa;database=wish";
string sql = "update temp set Pranent=@Pranent where Guid=@Guid";
SqlConnection con = new SqlConnection(conStr);
SqlCommand comd = new SqlCommand(sql, con);
comd.Parameters.AddWithValue("@Pranent",destid);
comd.Parameters.AddWithValue("@Guid",id);
int count = comd.ExecuteNonQuery();
if (count > 0)
{
return true;
}
else
{
return false;
}
}
}
AsuraLie 2010-11-17
  • 打赏
  • 举报
回复
例如:所有活动下,有“运动”和“休闲”其中“节点”运动下又包含,“球类”等若干运动。
当节点“运动”展开后,节点“休闲”就被冲到底部不显示了,当收缩节点“运动”后又显示了。
AsuraLie 2010-11-17
  • 打赏
  • 举报
回复
后台相关
protected void typeTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{

if (e.Node.ChildNodes.Count == 0)
{

PopulateType(e.Node) ;
}


}

protected bool PopulateType(TreeNode node)
{
tNode_P = mydr.rdPtype(Convert.ToInt32(node.Value));
if (tNode_P.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in tNode_P.Tables[0].Rows)
{
TreeNode NewNode = new TreeNode(row["txtName"].ToString(), row["ID"].ToString());
NewNode.PopulateOnDemand = true;
NewNode.SelectAction = TreeNodeSelectAction.Select;
node.ChildNodes.Add(NewNode);
}
return true;
}
else
{
return false;
}
}

前台代码:

<asp:TreeView CssClass="trType" runat="server" ID="typeTree"
ontreenodepopulate="typeTree_TreeNodePopulate"
onselectednodechanged="typeTree_SelectedNodeChanged" BorderStyle="Dotted"
ImageSet="Arrows" AutoGenerateDataBindings="False" NodeWrap="True"
>
<ParentNodeStyle Font-Bold="true" />
<HoverNodeStyle
Font-Underline="True" ForeColor="#5555DD" />
<SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px"
VerticalPadding="0px" ForeColor="#5555DD" />
<Nodes>
<asp:TreeNode Text="所有活动" Value="0" PopulateOnDemand="true"></asp:TreeNode>
</Nodes>
<NodeStyle Font-Names="Verdana" Font-Size="8pt" ForeColor="Black"
HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" />
</asp:TreeView>
AsuraLie 2010-11-17
  • 打赏
  • 举报
回复
能详细说明下么?
因为我发现仅当我展开节点的时候后面的节点就显示不出来了,
但是如果这时line的属性为TRUE的话,发现后面的节点是存在的。
吴青峰 2010-11-17
  • 打赏
  • 举报
回复
递归显示。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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