This can be done, however, there are some complexities.
First, because the data table does not have the ability to make rows invisible, you will have to actually create a new data table with the rows that you don't want displayed, removed from the data table. The New Data Box() or New Data View() that you are displaying will also have to be deleated and appended with the changing of the selections(filter).
The actual data table that the filtering is to be made on can have a Row State Handler, or On Change types of controls used to generate the new tables. Also, I assume, the main data table will be invisible, allowing the user to only see what the New Data Box() is viewing.
This JSL will give you a simple example
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp", invisible );
dtd = dt << subset( selected rows( 0 ), selected columns( 0 ), invisible );
nw = New Window( "Filter",
vlb = V List Box(
H List Box(
dt << Data Filter( Location( {2555, 44} ), Add Filter( columns( :sex ) ) ),
dt << Bivariate( Y( :height ), X( :weight ), autocalc( 1 ) )
)
),
dtddis = dtd << New Data Box()
);
nw << onclose( Close( dt, nosave ):close( dtd, nosave ) );
f = Function( {a},
dtddis << delete;
Close( dtd, nosave );
If( N Rows( dt << get selected rows ) > 0,
dtd = dt << subset( selected rows( 1 ), selected columns( 0 ), invisible ),
dtd = dt << subset( selected rows( 0 ), selected columns( 0 ), invisible )
);
vlb << append( dtddis = dtd << new data box() );
);
rs = dt << make row state handler( f );
Jim