Altså hvis du bare vil kalde window.print() fra dit ASP.NET codebehind skal du nok gøre noget lignende dette: Page.ClientScript.RegisterStartupScript(typeof(string), "Print", "window.print();", true);
for at få selve dialogen frem kan man jo bruge: Page.RegisterClientScriptBlock("","<script language=javascript>window.print() </script>"); men den skulle jo gerne automatisk submitte...
Jeg har også fundet et script som kan udskrive en side automatisk.
<html> <script language="JavaScript"> DA = (document.all) ? 1 : 0 function handle_error() { alert("\nNothing was printed. \n\nIf you do want to print this page, then\nclick on the printer icon in the toolbar above.") return true; } </script> <body onload="window.print();">
<script language="VBScript"> sub window_onunload on error resume next set WB = nothing on error goto 0 end sub sub print OLECMDID_PRINT = 6 OLECMDEXECOPT_DONTPROMPTUSER = 2 OLECMDEXECOPT_PROMPTUSER = 1
on error resume next if DA then call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) else call WB.IOleCommandTarget.Exec(OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","","") end if if err.number <> 0 then if DA then alert "Nothing Printed :" & err.number & " : " & err.description else handle_error end if end if on error goto 0 end sub
if DA then wbvers="8856F961-340A-11D0-A96B-00C04FD705A2" else wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B" end if document.write "<OBJECT ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:" document.write wbvers & """> </OBJECT>" </script> </body>
Omkring Page.ClientScript glemte jeg at spørge hvilken version af frameworket du brugte, og gik ud fra at det nok var 2.0
Omkring det med at printe uden nogen dialog først lyder det IMHO som en temmelig syg idé. Jeg har testet dit script i de browsere jeg har installeret, og resultatet er (guskelov) nedslående:
FF 1.5: Samme effekt som window.print() Opera 8: Samme effekt som window.print() Opera 9: Samme effekt som window.print() IE7: Alert box og advarselsbar i toppen af vinduet - "using an ActiveX control in an unsafe manner"
Jeg har kun mulighed for at bruge framework 1.1 endnu. :-( min problemstilling er at web siden skal kunne printe ud på nogle bestemte tidspunkter uden brugeren behøver at være til stede netop hvor der skal printes. For lige at forklare brugen af websiden, vil jeg oplyse at det er til en intranet application, som skal vise statestik som ind imellem skal printes. Jeg har dog selv kun prøvet scriptet på en IE 6 og her blev web siden printet ud, uden dialog. Har du en god ide til en løsning? for jeg har endnu ikke fået det til at virke automatisk fra c# endnu.
Ved ikke om du stadig lytter her - spørgsmålet var forsvundet i stakken, beklager...
C# i ASP.NET er server side. Du kan IKKE køre C# kode på klientens maskine fra en web applikation. Dette leder direkte videre til et spørgsmål: Hvad er idéen med at udvikle dette system i ASP.NET? Det lyder i mine øre ikke som en web app., men nærmere som en simpel konsol applikation.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.