webForumDet fria alternativet

Fråga om Gridview och skrivut

.NETur .NET

13 svar · 592 visningar · startad av manzan

Medlem sedan apr. 20089 inlägg
Frågan#1

Hej!
Jag jobbar i asp.net 2.0 VB och har en Gridview som hämtar uppgifter från en databas och visar. Raderna har olika färg med hjälp av en RowDataBound och det fungerar fint.
Problemet är att jag har en skrivut-knapp och när jag klickar på den försvinner alla färger på raderna och gridden skrivs ut, utan färger.
Är det ngn som har en aning om hur jag ska få med färgerna i utskriften, så vore jag tacksam för ett tips.
På Skrivut-knappen har jag följande script:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
ClientScript.RegisterStartupScript(Me.[GetType](), "print", "window.print();", True)
End Sub

Något som är fel med det kanske?
Hoppas ngn vet ...

Medlem sedan sep. 2005673 inlägg
#2

Det är nog inte applikationen utan skrivarens drivrutin som bestämmer vad som kommer med eller inte. Brukar väl finnas någon inställning där du kan välja om skrivaren ska ta med bakgrundsfärger eller inte (brukar inte vara standard). Men den inställningen gäller ju i så fall bara lokalt på din dator...

Medlem sedan apr. 20089 inlägg
#3

Men jag får för mig att det är onclicken som sabbar färgerna, för direkt när jag klickar på knappen, så försvinner färgen och sedan kommer utskriftsrutan upp.
Sidan laddas ju om vid klicket, så man borde väl kunna skriva ngt kommmando som aktiveras innan utskriftsrutan kommer upp där man lägger tillbaka färgerna igen, men jag får inte till det. Är inte så där jättevan på asp.net.

Medlem sedan sep. 2005673 inlägg
#4

Att skriva window.print() är samma som att välja print i menyn och som default får du inte med dig bakgrundsfärger när du går via menyn, eller? Det är egentligen javascript, har inget med asp.net att göra mer än att du kan leverera javascriptet via en kontroll förstås.

Istället för bakgrundfärg, lägg en bild bakom och text ovanpå den, kanske går att "lura" den att skriva ut bakgrunden då!

Medlem sedan apr. 20089 inlägg
#5

Men om jag väljer print i menyn så får jag väl sidan utskriven precis så som den ser ut med färger om det finns sådana och utan om det inte är några, eller?
Finns det ngt annat och bättre sätt att ge ett skrivut-kommando på, så att det blir riktigt?

Medlem sedan okt. 2007446 inlägg
#6

varför har du en knapp som genererar en postback för att göra nånting på klienten ?

Medlem sedan apr. 20089 inlägg
#7

De som ska använda systemet vill ha en skrivut-knapp och jag vet faktiskt inte hur man kan göra det på ett bättre sätt.
Har du ngt bättre förslag så tar jag jättegärna emot det ...

Medlem sedan okt. 2007446 inlägg
#8

<img src="print.gif" alt="Skriv ut" onclick="window.print();" />
nåt sånt, inte 100 på om onclick skall se ut exakt sådär, men det borde gå att goggla fram

Det jag ville komma till var att det är onödigt att skicka en reguest till servern att generera om sidan fast med ett javascript ditsatt i head
om du ser deetta flöde så kanske du inser hur onödigt det är

Server genererar sidan
Klick på knapp -->Server hanterar Eventet "knapp klickad
--> Server genererar OM sidan och skickar tillbaks den till klienten-->
Javascript på klienten skriver ut sidan

jämfört med
Server genererar sidan
Klick på knapp -->
Javascript på klienten skriver ut sidan

Medlem sedan jan. 20022 440 inlägg
#9

rhdf skrev:

<img src="print.gif" alt="Skriv ut" onclick="window.print();" />
nåt sånt, inte 100 på om onclick skall se ut exakt sådär, men det borde gå att goggla fram

Det jag ville komma till var att det är onödigt att skicka en reguest till servern att generera om sidan fast med ett javascript ditsatt i head
om du ser deetta flöde så kanske du inser hur onödigt det är

Server genererar sidan
Klick på knapp -->Server hanterar Eventet "knapp klickad
--> Server genererar OM sidan och skickar tillbaks den till klienten-->
Javascript på klienten skriver ut sidan

jämfört med
Server genererar sidan
Klick på knapp -->
Javascript på klienten skriver ut sidan

I detta fallet ja men om du till exempel ska generera en pdf som skickas browsern för att sedan skrivas ut blir det annorlunda :)

Medlem sedan okt. 2007446 inlägg
#10

@catz
ja självklart, men då hade nog även grundproblemet varit borta, nämligen att bakgrundsfärgen försvann ;)

Medlem sedan apr. 20089 inlägg
#11

Hej rhdf!
Jag gjorde en bildknapp istället med
<img src="print.gif" alt="Skriv ut" onclick="window.print();" />
och det blev ju naturligtvis mycket bättre. Tack för det tipset. Nu blir det ju inte postback i alla fall och färgerna består även när man klickar på knappen. Färgerna kommer ju inte med på utskriften nu heller, men det funkar inte så med GridView alltså, är det så?
Man kan få med dem om man skapar en pdf istället, har jag uppfattat rätt då?

Medlem sedan okt. 2007446 inlägg
#12

Jag ser inte varför en tabell som genererat av en gridview skulle skilja sig från en tabell genererats av tex en repeater. Testa att lägga in en statisk tabell och testa, följer inte färgerna med där så är det skrivarinställningar på klienten som bråkar

Genererar du en pdf av utskriften så kommer den ju se ut precis så som du vill att den skall se ut :) MEN det är betydligt bökigare att generera pdf-filer än att bara skriva ut sidan

Medlem sedan sep. 2005673 inlägg
#13

manzan skrev:

Men om jag väljer print i menyn så får jag väl sidan utskriven precis så som den ser ut med färger om det finns sådana och utan om det inte är några, eller?

Näe, det är nog det du inte får sirru. :) De flesta vill inte skriva ut bakgrundsfärger utan bara texten när de printar (bläckkonsumtion!!) så därför är alla bakgrundsfärger inte med per default.

Medlem sedan apr. 20089 inlägg
#14

Hej igen!
Nu har jag hittat att man kan ställa in om man vill skriva ut bakgrundsfärger och bilder under Internetalternativ precis som du sa först inspiro. Då kan jag ju skriva en notis om det på webbsidan, så får de göra som de vill.
Tack för all hjälp!

140 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)