webForumDet fria alternativet

Resources fil och gif

.NET

13 svar · 719 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag försöker att göra en webcontroll och har lagt till tre bilder(gif) i den
Resources möjligheten man får om man klickar på webbcontrollens properties.
(jag hoppas att ni förstår mig.
Jag försöker att använda mig av bilderna så här:

string gifJa = Page.ClientScript.GetWebResourceUrl(this.GetType
(), "Controll_Votes._5.gif");

//lite kod
output.Write("<Img Src=" + gifJa + " height=10 width =" + syes + ">");

Problemet är att jag kan inte få tag på bilden. Den visar "platshållaren för
bild" men ingen bild. Jag gör naturligtvis fel, men hur bör jag göra?

Medlem sedan dec. 19996 721 inlägg
#2

View source är en bra funktion...

Sätt url:en på en Image-kontroll i stället, så ska du se att det går bättre.

Medlem sedan mars 20011 880 inlägg
#3

Kan jag kodmäsigt lägga in en inagekontroll via output.Write???

Medlem sedan dec. 19996 721 inlägg
#4

Jag vet inte vad output.Write är i detta sammanhang, men nej, det kan du inte.

Som sagt, view source är en bra funktion. Använd den när sidor inte ser ut som de bör.

Problemet i detta fall är att GetWebResourceUrl returnerar en applikationsrelativ Url, med tilde-tecken i början, vilket förstås inte är så populärt i webbläsaren. Använd en Image-kontroll, eller kör ResolveUrl på url:en innan du använder den.

Medlem sedan mars 20011 880 inlägg
#5

Hur jag än gör, så får jag inte fram det resultatet som jag vil ha, alltså ingen
bild.

syes = contVotes(Yes, Yes +No + DontKnow).ToString();
 decimal dja = Convert.ToDecimal(syes);
Image gifJa = new Image();
gifJa.ImageUrl = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "_5.gif");
gifJa.Width =dja;
this.Controls.Add(gifJa);
//här är många olika  output
 output.Write(gifJa);

Jag har suttit länge och väl, försökt söka på internet men hur jag än gör
så kommer det bara fram galet, som säger att det är
System.Web.UI.WebControls.Image

Jag skulle vara väldigt tacksam för hjälp här.

Medlem sedan dec. 19996 721 inlägg
#6

saw skrev:

Kan jag kodmäsigt lägga in en inagekontroll via output.Write???

Nej

Medlem sedan mars 20011 880 inlägg
#7

Med andra ord så kan jag alltså inte visa en gif-bild via en webcontroll?
Det ser ut som om jag får lägga ner detta projekt då.

Medlem sedan dec. 19996 721 inlägg
#8

Nej, det jag sa var:

1. Du kan inte lägga in en Image-kontroll via output.write
2. Om du nödvändigtvis måste använda output.write så kan du ta reda på url:en med ResolveUrl.

Har du provat "view source" på sidan?

Medlem sedan mars 20011 880 inlägg
#9

Nej jag hittade någonting annat so jag trodde skulle hjälpa mig men inte.
Ja jag har kollat view source och jag blir bara besviken, jag får ju intemed mig någonting av vikt.
Nu skriver jag via StringBuilder det verkar lite vettigare. Så här har jag det nu:

System.Drawing.Image gifJa = (System.Drawing.Image)Resource1._5;
               System.Drawing.Image newgifJa = 
gifJa.GetThumbnailImage(Convert.ToInt32(Yes), Convert.ToInt32("10"), null, IntPtr.Zero);
               gifJa.Dispose();
               newgifJa.Save(HttpContext.Current.Server.MapPath("5.gif"), 
System.Drawing.Imaging.ImageFormat.Gif);
//så långt utan problem men sen när jag skall visa...
 sb.Append("<td>" + newgifJa.ImageUrl  = "5.gif" + "</td>");
               File.Delete(HttpContext.Current.Server.MapPath("5.gif"));
//då är problemet att newgifJa inte har ImageUrl
Medlem sedan dec. 19996 721 inlägg
#10

saw skrev:

Ja jag har kollat view source och jag blir bara besviken, jag får ju intemed mig någonting av vikt.

Men någonting måste det väl stå i html-koden, där du ville ha ut bilden?

Medlem sedan mars 20011 880 inlägg
#11

Nu har jag efter att letat/sökt/försökt och gjort nästan allt, lite gått tillbaka
till min första kod.

string gifJa = Page.ClientScript.GetWebResourceUrl(this.GetType(), "Controll_Votes._5.gif");
                 Image imgJa = new Image();

//och i stringbuildern
sb.Append(imgJa.ImageUrl = gifJa);

När jag kollar i viewsourse

<td>/UseDataCaching/WebResource.axd?
d=EghcrTmvw0mQiLPhysPE4DA8i2myYxM-
stMA6VwPEOapKHUlGau3TVYuC2eHgCMm0&t=633082568189375000</td>
//när jag lägger in kontrollen i en webbpage står det
mvwres:1-Controll_Votes._5.gif,Controll_Votes,Vertion 1,0,2615,19598,
Culture=neutral,PublicKeyToken=null

Det ända som jag förstår av detta är att jag är helt fel ute.

Medlem sedan mars 20011 880 inlägg
#12

Jag har fått göra det näst bästa av det hela

sb.Append("<td><div style=\"background-color:Blue; width:" + 
Convert.ToInt32(sdontKnow) + "px\" ></div></td>");

Detta fungerar men blir inte lika snyggt som en bild.
Hur gör jag om jag vill ha en property för att välja färg???

[REDIGERAT]
Jag får vara nöjd med mitt resultat, tack för all hjälp.

Medlem sedan dec. 19996 721 inlägg
Medlem sedan mars 20011 880 inlägg
#14

Tack emission dessa sidor har jag aldrig sett innan.

266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)