Hola, te comento lo que yo pondria sin complicarme la cabeza.....
En el evento click al final agrego un registro de script para que lanze la nueva pagina:
declaras una variable de tipo string en este caso de ejemplo script
dim script as string = string.empty
script = "<script language="javascript" type=""text/javascript""> function Popup() {window.open(TuPagina, null, ""toolbar=no, location=no, menubar=no, position=absolute, height=565, width=720, top=180, left=180, scrollbars=yes, resizable=no"")}</script>"
Luego en VS 2005 es asi para registrar el script. En VS 2003 es similar pero no recuerdo bien la sintaxis
ClientScript.RegisterClientScriptBlock(Page.GetTyp e(), "NombreRegistro", script)
Reemplaza los valores en el script por los tuyos (nombre de pagina, medidas y si queres toolbar y todo eso que quieras modificar)
Con respecto a server.transfer y response.redirect lo que te puedo comentar es que si haces server.transfer podes ver los objetos como si estuvieras en la pagina, pero no podes hacer server.transfer a otra url solo podes dentro de tu sitio, y mucho mas no recuerdo pero en google esta lleno de info de esto, buscalo y te sacas la duda rapidamente. En particular siempre utilizo response.redirect aunque se que viaja un par de veces mas que el otro metodo haciendolo un poco mas pesado pero.....
Bueno espero que te sea util algo de esto.
Saludos.