Parametervärde
Hej, sitter här med ett litet problem i asp.net C# jag inte vet hur att åtgärda. Ska sammanfatta kort...så här ser min *.cs fil ut
<code>
this.imgGrupp.ImageUrl= "readimage.aspx?imID="+Session["Grupp"]+"&strTabellID=tblTräningGruppID";
</code>
...och detta blir resutatet på aspx sidan i webbläsaren så jag granskar koden
<code>
<img id="imgGrupp" src="readimage.aspx?imID=2&strTabellID=tblTräningGruppID"...
</code>
Vad jag inte kan fatta är vart kommer omvandlingen av & tecknet från, för det är rätt i codebehind filen och det vet jag därför att debuggern visar så men någonstans på vägen i servern blir det fel och jag vet inte vart? Jag har också ändrat i web.config till
<code>
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="iso-8859-1" culture="sv-SE" uiCulture="sv" />
</code>
Är det någon som har svaret?
MVH
Micke
Svara
Sv: Parametervärde
Värdet html-kodas automatiskt av kontrollen. Det ska vara så, och koden som skapas är korrekt.
Problemet är alltså bara att du tror att det är fel. Jag hoppas att jag har åtgärdat problemet. :)
Svara
Sv:Parametervärde
Jag vill kunna skicka textsträngen så att endast & tecknet fås från codebehind till aspx sidan så det ex visas
readimage.aspx?imID=2&strTabellID=tblTräningGruppID
istället för
readimage.aspx?imID=2&strTabellID=tblTräningGruppID
för annars så fungerar inte länken...
MVH
Micke
Svara
Sv: Parametervärde
& i en länk ska skrivas & så det är absolut inget fel på den där länken. På vilket sätt fungerar inte länken?
Thomas
Svara
Sv: Parametervärde
Ifall länken inte fungerar så beror det inte på att det står & i den, utan på något annat.
Tvärtom, så är koden fel ifall det inte står & i den. Oftast fungerar det ändå, men om du till exempel har ett värde som du har döpt till "copy", så kommer det att bli fel ifall &-tecknet innan inte är html-kodat. Då kommer den att tolka © som koden för copyright-tecknet.
Svara
Sv:Parametervärde
nej
det är designern som tror att du vill ha ett html & istället för ett codeblockscommando
se till att du i options stänger av all intelligens i designläge (för den är så jävla dum så man baxnar)
och om du fixar i en fil och av misstag tittar på en ascx/aspx- sida i designläge
så innan du checkar in /sparar så kollar du dessa kodställen och ändrar tillbaks om det behövs
det är irriterande men det är bara att tugga och svälja :)
Svara
Sv: Parametervärde
> det är designern som tror att du vill ha ett html & istället för ett codeblockscommando
Jag tror att du tänker på något annat. URL:en skapas i code behind, så den ändras inte av design-läget.
Svara
Sv:Parametervärde
okej,,,jag tror jag fattar men hur stänger man av intelligensen i design läget? Jag provade precis med..
<code>
string temp = "readimage.aspx?imID="+Session["Grupp"]+Server.UrlDecode("%26")+"strTabellID=tblTräningGruppID";
this.imgGrupp.ImageUrl = temp;
</code>
men inte fasiken hjälpte det...
/Micke
Svara
Sv: Parametervärde
Nej, naturligtvis "hjälper" inte det.
Server.UrlDecode("%26") ger värdet "&", vilket kommer att hanteras korrekt av kontrollen.
Ifall du vill skapa den felaktiga koden så kan du inte använda kontrollen på det viset. Då får du skapa html-koden själv.
Svara
Sv:Parametervärde
ah fel av mig - jag beskrev ett annat slags problem
om man i ascx/aspx htmlen har såna här sköna grejer
<td class="<%#me.RenderedStyle(container.dataitem)& me.isexpanded(container.dataitem)%>">
så kommer designern ändra ochet till ett amp när man öppnar sidan i designläge om man har autoformat och vad fan det heter påslaget - otroligt irriterande
Svara
Sv: Parametervärde
tror det är så du ska göra i ditt fall oxå faktiskt
istället för att sätta värdet som en text i codebehind som då skrivs som html
så hämta innehållet i ett codeblock från en property du har i codebehind (eh känner mig otydlig idag)
det är inte meningen att den ska ändra utseendet på texten i ett codeblock - det är ju det som är så irriterande med vad jag skrev ovan
Svara
Sv:Parametervärde
Tack alla för svaren, jag löste det nu med att skicka ren html kod till sidan men tyvärr uppstod ett annat problem. Vad som ska laddas i html sidan är en binär bild från en databas i src attributet, det funkar så långt att när jag debuggar så kommer jag till sidan jag hänvisar till, där har jag koden...
<code>
strImageID = Request.QueryString[0];
strTabellID = Request.QueryString[1];
// ÖPPNA MOT DATABAS
this.objConn = new System.Data.OleDb.OleDbConnection(Conn.ConnectToDB.db_Conn);
objCmd = new OleDbCommand("SELECT BildData FROM "+ strTabellID +" WHERE ID_PRIM ="+strImageID+"",objConn);
objConn.Open();
objRdr.Read();
//SKICKA INTE BILDEN FÖRÄN DEN ÄR FÄRDIGLADDAD PÅ SERVERN
Response.Buffer = true;
//BILDDTYP
Response.ContentType = objRdr["BildTyp"].ToString();
//VEKTOR FÖR BILDDATA
byte[] mByte = new byte[(int)objRdr["BildData"]];
//SKRIV UT DATAFLÖDE
Response.BinaryWrite(mByte);
objRdr.Close();
objConn.Close();
</code>
Deuggern bryter vid objRdr.Read() och kör inte ned till Response, varför gör han så tro?
//Micke
Svara