Jeg har en variabel i min codebehind og hvis den variabel har en bestemt værdi, så må formen skrives ud, men hvis den har en anden værdi, så må formen IKKE skrives ud og brugeren skal evt. have en advarsel om dette.
har du mulighed for at smide noget kode..? det er ikke meget at arbejde med..
jeg retter lige jhe-ting's kode hvis det er den du bruger direkte.. <input id="Button5" type="button" value="Print Form" onclick="if (CodeBehindVar==OkToPtint) window.print(); else alert('NoPrint reminder')"/>
udover det, så tror jeg ikke at du kan veksle oplysninger på den måde, mellem JavaScript, og codebehind..
der tror jeg du bliver nød til at lave et hiddenfield.. og udover det, så vil koden ikke virke hvis din CodeBehindVar ikke er oprettet først, så medmindre du opretter den andet steds, så vil koden stadig ikke køre.. idet at din Javascript vil lave en fejl, og dermed aldrig komme til hverken window.print eller alert..
det kan gøres på flere måder, men her er een af dem..
opret dette script i din <head> <script type="text/javascript"> function getSharedData() { if (document.getElementById("sharedData").value==OkToPtint) window.print(); else alert('NoPrint reminder') } </script>
sory.. havde lavet en lille typo. denne linje if (document.getElementById("sharedData").value==OkToPrint) window.print(); skal se således ud if (document.getElementById("sharedData").value == "OkToPrint") window.print();
altså OkToPrint skal være i "", ellers laver den en javascript fejl, og derfor du ikke fik nogen popup..
Nu har jeg sat "" ind og siden kører helt uden fejl, men der kommer stadig hverken printboks eller popup frem? Sætter jeg værdien af sharedData.Value korrekt?
Jeg lavede også en javascript knap til at sætte værdien i sharedValue, bare for at slippe for et postback.. men ta' dig ikke at den.. det er den der hedder button2
det skal selvfølgelig siges at du godt kan have hele dit javascript kode i i knap, jeg valgte bare at fravælge det for overskuelighedens skyld..
men så ville din content side komme til at se således her ud.. <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="PrintOK.aspx.vb" Inherits="Javascript_PrintOK" title="Untitled Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
Nu har jeg forsøgt at sætte kode og tags ind på en side UDEN en masterpage og så virker både printboks og alert afhængig af variablens værdi! Så det virker! Men hvordan får jeg det til at virke MED en masterpage - det har applikationen, den skal bruges i, nemlig.
Nu har jeg klippet alt over. Jeg kan dog ikke sætte en contentplaceholder mellem head for så får jeg fejl, som skrevet ovenfor. Desværre kan jeg stadig ikke få det til at virke.
Jeg er ked af at være besværlig, men det virker ikke for mig. Når jeg trykker på Get Data, så kan jeg meget kortvarigt se fejl udråbstegnet, men det forsnder igen og så sker der ikke mere?
1/ Gemmer oplysninger på form i database. 2/ Viser en printdialogboks, der giver adgang til at printe formularen (for den vil godt, hvis der IKKE er en if else).
På den måde opnår jeg, hvad jeg vil, nemlig at det ikke skal være muligt at udskrive formularen uden at gemme de data, der står på den.
Iøvrigt en anden fordel ved 'min' løsning: funtionen kan indeholde en alert først, der fortæller brugeren, at nu skal der udskrives og ved ok til denne, dukker printdialogen op.
Lægger du et svar! Jeg havde ALDRIG fundet ud af det uden din hjælp!
nej.. desværre ikke.. jeg bruger .net 3.5, og den understøtter at jeg har en contentpage til min head (hvor at jeg så kan smide min Javascript kode ind), så jeg har ikke denne slags problemer (heldigvis.. :) ) men jeg har læst lidt frem og tilbage, at der er mange der skrive selve Javascript funktionen i codebehind (altså tilføjer teksten med javascriptet via C# eller VB, i deres page_PreRender, og skriver den i headeren) mener det er denne tutorial. http://www.asp.net/learn/videos/video-276.aspx
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.