做了个treeview  想实现这样的功能  每个节点对应的信息都不同   当然父包含子   我在保存信息时提取了选中的节点的tag和taxt   放在另一个表中 属于一对多  实现的功能就是 双击这个节点  自动查询出来属于这个节点的另一个表的信息 条件就是这个节点的taxt和tag以及它本身的下一级所有节点的tag和text  去查所有的信息 请各位大哥给个思路 另外我实现了查询 但是是循环遍历双击节点的所有节点 然后循环填充dataset  这样每当我双击就会显示重复的信息 dataset.clear()也没用   不知道是为什么?

解决方案 »

  1.   

    一个递归查询工程, 如果存在重复, 你去掉就可以, 直接sql语句就可以搞定的
      

  2.   

    放在UpdatePanel中,每次执行完重新绑定,刷新一下就可以了
      

  3.   

    例如你用的是GridView
    前台
                    <asp:UpdatePanel runat="server">
                    <ContentTemplate>
                        <asp:GridView ID="GridView1" runat="server">
                    </ContentTemplate>
                    </asp:UpdatePanel>
    当然上面还要加
    <asp:ScriptManager ID="ScriptManager1" runat="server">
                    </asp:ScriptManager>
    后台
        protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e)
        {
             DataTable dt = new DataTable();
             string StrSql = "select * from 表 where ……         绑定GridView
        }
       
      

  4.   

    这个是我常用的,希望对LZ有帮助,这样绝对没错的
      TreeNode tr = new TreeNode();
            tr.Text = "政府栏目管理";
            tr.Value = "0";
            TreeView1.Nodes.Add(tr);
            fillnode(tr, 0);
     
        /// 填充字节点  
      public void fillnode(TreeNode tree, int i)
        {
           try 
    {
            DataTable dt = new DataTable();
            shu.Sqlstring = "select * from info_lanmu where l_fid=" + i;
            dt = shu.GetDataSet().Tables[0];
            foreach (DataRow dr in dt.Rows)
            {
                TreeNode tc = new TreeNode();
                tc.Text = dr["l_name"].ToString();
                tc.Value = dr["l_id"].ToString();
                tc.NavigateUrl = "mess.aspx?lanmuid=" + dr["l_id"].ToString();
                tc.Target = "mainFrame";
                tree.ChildNodes.Add(tc);
                fillnode(tc, Convert.ToInt16(dr["l_id"].ToString()));
             
            }