Lo ideal es que envies por la url con el response.redirect la clave primaria del registro o registros que desean en el reporte.
Luego en la pagina mostrarReporte.aspx consultas la información y la muestras como la necesitas.
En cuanto a CrystalReports sin lugar a dudas es una muy buena opción para los reportes asi que puedes comenzar con buscar en google de seguro encontraras información. No tengo a la mano un codigo de ejemplo asi que mas o menos segun recuerdo estos son los pasos: (como yo lo hago)
1. Crear un DataSet tipado el cual contiene una tabla con los campos que se mostraran en el reporte.
2. Cuando agregar un repote de Crystal al proyecto mostrara un asistente el primer paso es el origen de datos, ahi en la primera opcion creo que es ADO.NET debe aparecer el DataSet y adentro la tabla.
3. El siguiente creo que es definir que campos de la tabla quedan en el reporte.
Una vez termines con el asistente solo quedaria cargar el reporte en un CrystalReportsViewer
Tambien puedes mirar esto, creo que te lo explican mas detalladamente.
http://aspalliance.com/1874_Building...namic_Grouping
Si continuas con dudas me comentas a ver en que te puedo ayudar.
Saludos