sto provando questa funcoine:
codice:
        private void CaricaMenu2()
        {
            DataTable DT = new DataTable("Tabella");
            DataTable DTapp = new DataTable("TabellaApp");

            DT = SourceDatiMenu();

            DataView DV = new DataView(DT);
            //DV.Table=DT;
            DV.RowFilter = "Livello2 is NULL"; //IDMenu=1 and and IDTipoAccesso=1";//modiifcare per renderlo dinamico

            this.GridView1.DataSource = DV;
            GridView1.DataBind();


            for (int i = 0; i < DV.Table.Rows.Count; i++)//per tutti o nodi
           {
               TreeNode nodoApp = new TreeNode();

               nodoApp = GetNodo(DV, i);
               treeMenu.Nodes.Add(nodoApp);

           }
        }
impostando un filtro nel DATAVIEW ,
se carico il datagrid, mi fa vedere un record
mentre se lo ciclo me ne restituisce 7

cosa devo fare?
grazie