Hola,
Es cierto, el método print del objeto window no retorna ningún valor, pero se me ocurre que podrías valerte de los métodos onBeforePrint y onAfterPrint (http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/print.asp) para hacer algo como esto:
- Declaras una variable javascript global que te sirva para determinar si el documento se envió a imprimir o si se canceló el diálogo de impresión - Inicias la varible con true (var miVariable = true;) - Declaras una función en la que asignes el valor false a la variable que declaraste y desde la que, luego, llames al método window.print() - Pintas un botón en tu página que llame a la función que declaraste - Si el usuario da click en el botón Aceptar del cuadro de diálogo de impresión, el documento se enviará a imprimir y al terminar se ejecutará el método onAfterPrint(), implementas este método para asignar a la variable de control el valor de true indicando de esta forma que el documento fue impreso luego, llamas a una función que haga un post al servidor para ejecutar un método en tu código .NET que haga la grabación que corresponda en la base de datos - Ahora, para grabar en la base de datos cuando el usuario canceló la impresión: Implementas el método onUnload del documento en donde verificas si el valor de la variable de control es false, si lo es quiere decir que el usuario abrió el cuadro de diálogo de impresión, pero lo canceló luego, entonces, llamas a otra función que haga el post al servidor para que se ejecute el método .NET que grabé lo que corresponda en la base
Debes tener en cuenta que parte de lo descrito funciona sólo con Internet Explorer versión 5 o superior.
Espero te sirva.
Saludos |