Postade först detta meddelande i vb.net sektionen, men insåg att det snarare ska ligga här, eftersom det faktiskt är ASP.NET jag sysslar med. Förutsatt att koden körs så är felet att msgbox inte är giltigt javascript, använd alert istället Men det är ju vb-kod jag kör. ASP.NET stödjer ju inte javascript om jag minns rätt. Har nu testat att anropa en funktion som i sin tur kör en msgbox. Koden ser ut så här: Nu tar vi det lilla lugna och funderar lite.. Är det servern eller webbläsaren som exekverar "asp.net"? (vb.net dvs.) Ok, nu fattar jag vad du menar... onclick är ett javascript kommando som exekveras på webbsidan och kan inte komma åt asp.net funktioner som exekveras på servern. Hur har du kopplat de webbsideelementen till funktionerna på servern? Använder knappar. Ser ut så här: Gör följande test: Skapa en asp.net-hyperlink. Den är klickbar, och kan trigga ett onclick-event på servern. Titta i källkoden så kommer du hitta något intressant :) Gjorde testet som du sa. Fick använda "NavigateUrl" attributet. Servern verkar göra om asp-hyperlinken till en vanlig <a> när man tittar i källkoden på webbsidan. Men detta löser iaf mitt problem, genom att jag populerar cellerna i tabellerna med asp-hyperlinkar.attributes.add onclick problem
I en funktion tilldelar jag ett onclick attribut till en cell i en tabell:
trans3.Attributes.Add("onclick", MsgBox("hej"))
där trans3 är cellens id. Denna funktion är kopplad till en knapp. Problemet är att när man trycker på knappen så avfyras msgboxen direkt, och sedan händer ingenting när man trycker på cellen. Har även testat lite olika varianter såsom:
trans3.Attributes.Add("onclick", "MsgBox('hej')")
Men det funkar inte ändå. Vad kan detta bero på?
/RobinSv: attributes.add onclick problem
Sv:attributes.add onclick problem
Sv: attributes.add onclick problem
trans3.Attributes.Add("onclick", "ShowMsg()")
Där ShowMsg är funktionen med msgboxen. Nu avfyras inte msgboxen direkt som innan, men när jag klickar på trans3, så kommer det upp en liten ikon i nedre vänsterkanten av webbläsaren där det står att det är fel på sidan. Klickar jag på denna kommer det upp lite mer info. Står att felet är att "Ett objekt förväntas".
Vad kan detta objekt vara egentligen?Sv:attributes.add onclick problem
Vad ser webbläsaren? Har du ens tittat på källkoden _i webbläsaren_? Gör det så kommer du kanske på problemet ;)Sv: attributes.add onclick problem
Och jag måste ju också använda alert istället för msgbox eftersom onclick är javascript.
Man tackar :)
Men när jag nu insett detta så ser jag direkt ett nytt problem till följd av insikten. Vad jag vill är ju att arbeta mot funktioner som exekveras på servern. En stor del av webbsidan är ju redan uppbyggd på det sättet. Så det känns inte som jag kommer vidare med onclick.
Några tips på att komma runt detta? Alltså att man klickar på en tabellcell och exekverar en funktion på servern.Sv:attributes.add onclick problem
Och varför funkar det inte att göra så på td?Sv: attributes.add onclick problem
<asp:Button ID="Button1" Text="Ok" OnClick="hw" runat="server"/>
Men grejen är att onclick attributet i detta fallet inte är det samma som annars, utan är här ett .NET attribut istället för javascript. Också något jag har insett idag. Tyvärr så verkar detta bara gälla för asp:button, så jag står handfallen vad gäller tabeller.Sv:attributes.add onclick problem
Sv: attributes.add onclick problem
Tack för all hjälp.
/Robin