Jag hämtar bildkälla från en databas och visar bilderna i en tabellcell (bilderTd) på följande sätt ...
bilderTd.Controls.Add(new LiteralControl("<td><a border='0' href=''><img src='" + KatDr1["bildSrc"] + "' width='100' border='0' alt='" + KatDr1["bildNamn"] + Environment.NewLine + "Inlagd den: " + KatDr1["inlagd_den"].ToString().Substring(0, 10) + "'></a></td>"));
det blir alltså en tabell med miniatyrbilder som jag vill att man ska kunna klicka på så visas de i sin riktiga storlek (som ska kollas i javascript eller liknande) i ett nytt fönster. Men hur kommer jag åt en javascript-funktion från codebehind? Eller finns funktioner förr newWindow i c#?
janrochMedlem sedan jan. 200518 inlägg Jag undrar varför du vill öppna det nya fönstret från CodeBehind. För det går inte kan man säga. Det görs via javascript eller target-attributet på <a>-taggen.
Jag skulle nog skriva om din kod till
bilderTd.Controls.Add(new LiteralControl("<img src='" + KatDr1["bildSrc"] + onclick=javascript:window.open('" + KatDr1["bildSrc"] + "');>"));
Om du hajar vad jag menar. Tog bort lite extra bara för att tydligöra...
Men td-taggen o a-taggen ser jag inget behov för egentligen.
renholmMedlem sedan apr. 20012 266 inlägg För att dra det hela lite längre skulle jag skriva om din kod helt, poängen med ASP.NET ä att det finns kontroller som genererar HTML åt dig så att du slipper göra som i ditt exempel.
HyperLink link = new HyperLink()
link.NavigationUrl = "javascript:void(0);";
link.Attributes.Add("onclick", "windows.open ...etc");
Image image = new Image();
image.ImageUrl = KatDr1["bildSrc"];
image.Width="100";
link.Controls.Add(image);
bilderTd.Controls.Add(link);
Eller det är tom. ännu bättre med an repeater.
Tänk på att jag är nybörjare :) Det där med att skapa hyperlänkar och image = new Image() var inget jag visste. Men det e klart jag ska lägga den i en repeater :) När man e nybörjare så tänker man inte på det smartaste sättet alla ggr. Tackar
men nu har jag lagt in bilderna i en datalist och tänkte att då kan jag använda javascriptet som vanligt men när jag klickar på en bild så händer ingenting. Vad e det jag missar?!
Det här är javascriptet för att öppna fönster i rätt storlek
<script language="javascript" type="text/javascript">
<!--
function DetectImageSize(picName,picSrc,picTitle){
pic = picName;
pic = new Image();
pic.src = picSrc;
picURL="bilderSida.aspx?bilder=" + picSrc;
w=pic.width+80;
h=pic.height+40;
nyttWin = window.open(picURL, "StinasSida", 'left=' + ((screen.width-w)/2) + ',top=' + ((screen.height-h)/2) + ',width=' + w + ',height=' + h + ',toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1');
newWindow.document.write('\<html\>\<head\>\<title\>'+picTitle+'\<\\/title\>\<\\/head\>\<body background="'+picURL+'"\>\<\\/body\>\<\\/html\>');
newWindow.focus();
}
-->
</script>
och så här anropar jag funktionen
\<a href='javascript:DetectImageSize(\<%# DataBinder.Eval(Container, "DataItem.bildSrc").ToString().Substring(0, 8) %\>,"bildKategorier/\<%# DataBinder.Eval(Container, "DataItem.bildSrc") %\>","\<%# DataBinder.Eval(Container, "DataItem.bildNamn").ToString() %\>");'\>\<img src='bildKategorier/\<%# DataBinder.Eval(Container, "DataItem.bildSrc") %\>' width='100' border='0' alt='\<%# DataBinder.Eval(Container, "DataItem.bildNamn") + Environment.NewLine %\>Inlagd den: \<%# DataBinder.Eval(Container, "DataItem.inlagd_den").ToString().Substring(0, 10) %\>'"\>\</a\>
renholmMedlem sedan apr. 20012 266 inlägg Kontrollera vilken kod som verkligen generas och felsök den på klientsidan, förslagsvis med något verktyg som kan upptäcka javascript fel. Posta även den generade html koden här så kan vi hjälpa till.
<table id="_ctl1_DataList1" cellspacing="10" cellpadding="0" align="Left" border="0">
<tr>
<td style="border-style:None;">
<a href='javascript:DetectImageSize(IMGP4079,bildKategorier/IMGP4079.JPG,Jag och Petter på RT90-bal)'>
<img src='bildKategorier/IMGP4079.JPG' width='100' border='0' alt='Jag och Petter på RT90-bal
Inlagd den: 2005-02-23'></a>
</td>
detta är en rad som genereras. Har inte riktigt kommit underfund med hur det funkar med ' och " mitt i en sådan här sträng för i ursprungsfunktionen (som jag använt på en vanlig htnl-sida) så är strängen inom ' '
Hur kan jag felsöka?
renholmMedlem sedan apr. 20012 266 inlägg Strängar i javascript ska omslutas antingen med '' eller "", dock har du använt ' för href och får därför använda " alternativt ändra till " för href och ' för javascript.
Ah då funkar det :)
Tack för all hjälp
renholmMedlem sedan apr. 20012 266 inlägg Acceptera svaret så att tråden blir märkt som löst.