怎么用gridview实现树形啊 连接数据库那种可以多子节点的那种
gridview的主键和头2列是通过3表关联的查询sql语句获取,在页面加载时先获取为parentId为null的gridview 当点击莫行头列后根据主键id获取子节点,方法一样的只是parentid=当前行主键id,但我用viewstate保存的只能显示父节点有关的主键id,子节点主键id为空 怎么解决呢?
gridview的主键和头2列是通过3表关联的查询sql语句获取,在页面加载时先获取为parentId为null的gridview 当点击莫行头列后根据主键id获取子节点,方法一样的只是parentid=当前行主键id,但我用viewstate保存的只能显示父节点有关的主键id,子节点主键id为空 怎么解决呢?
<Nodes>
<asp:TreeNode Text="a" Value="a">
<asp:TreeNode Text="a1" NavigateUrl="~/Member/EditPwd.aspx" Value="a1" Target="right"></asp:TreeNode>
<asp:TreeNode Text="a2" NavigateUrl="~/Member/Person.aspx" Value="a2" Target="right"></asp:TreeNode>
<asp:TreeNode Text="a3" NavigateUrl="~/Member/Inte.aspx" Value="a3" Target="right"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>后台代码: private void databind()
{
//获取根节点数据
DataTable dt = GetSorts("");
//循环添加根节点数据
foreach (DataRow dr in dt.Rows)
{
//实例化根节点
TreeNode node = new TreeNode();
node.Text = dr["sortname"].ToString();
node.Target = "right";
node.NavigateUrl = "Sorts.aspx?sortid=" + dr["sortid"].ToString();
//查找该节点下所有子节点
DataTable dt1 = GetSorts(dr["sortid"].ToString()); //进入循环添加子节点的过程
AddChild(dt1,node); //将根节点添加进树控件中
TreeView1.Nodes.Add(node);
}
}
/// <summary>
/// 将该节点下所有子节点都添加进去
/// </summary>
/// <param name="dt1"></param>
/// <param name="node"></param>
private void AddChild(DataTable dt1,TreeNode node)
{
foreach (DataRow dr1 in dt1.Rows)
{
TreeNode node1 = new TreeNode();
node1.Text = dr1["sortname"].ToString();
node1.Target = "right";
node1.NavigateUrl = "Sorts.aspx?sortid=" + dr1["sortid"].ToString();
//获取当前节点的子节点
DataTable dt = GetSorts(dr1["sortid"].ToString());
//
AddChild(dt, node1);
node.ChildNodes.Add(node1);
}
}