Oh, I see. You can still do it with a repeater, you could do it by creating three tables, one for each category, and then binding the dataset to the repeater and accessing the three tables in the data items for the three rows. I still lean towards a stored procedure that returns one table with three rows, based on category. Then the presentation layer is easy, as it should be. Christian Graus - Microsoft MVP - C++