c# och css, händelsehantering för webapp

Trädvy Permalänk
Medlem
Registrerad
Apr 2005

c# och css, händelsehantering för webapp

Hejsan jag är nybörjare och har fått ett mindre problem att lösa

I html har skapat en knapp på detta sätt:
<a id="knapp1" href="#" title="knapp1"><span>förstora</span></a>

och en label:
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

Så långt så bra, men i själva C# koden försöker jag skriva en händelsehanterare så att när man klickar på knapp1 kommer label1 förstoras.

protected void knapp1_Click(object sender, EventArgs e)
{
Label1.Height = 150;
}

Jag antar att det är något med första raden som är fel, men jag har testat med public void också. Om jag skriver label1.Height = 150; i själva page_load metoden så funkar det dock

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Det är för att din html-knapp körs på klientsidan. På samma sätt som du skapade label1 kan du skapa en knapp1 som är en "linkbutton" tror jag det heter. Men den kan du koppla onclick

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Registrerad
Apr 2005

tack för svaret men det är fortfarande något problem!

nu har jag skapat en linkbutton med:
<asp:LinkButton ID="lb1" runat="server"></asp:LinkButton>

och skriver händelsehanteraren som:
protected void lb1_Click(object sender, EventArgs e)
{
Label1.Height = 150;
}

men fortfarande händer inget, behövs det någon mer kod i css filen?

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008

Tror inte du menar cssfilen.. För övrigt, antar att du kör visual c# express, gå till design view och dubbelklicka på din linkbutton så skapas automatiskt ett onclickevent. Du har nu inte kopplar ett event till din knapps onclick.

<asp:LinkButton ID="lb1" runat="server" OnClick="lbl1_Click"></asp:LinkButton>

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Okt 2007

Du har gjort nästan rätt men nu funkar det så att det event som kopplas till din Knapp körs på server sidan medan klienten dvs webbläsaren uppdateras inte när du klickat på knappen. Kortfattat det du har gjort är rätt men du har inte uppdaterat webbläsaren.

Det finns olika lösningar på det, lägga till en funktion som uppdaterar sidan efter tryckningen, AJAX Update panels eller Javascript.

En Laptop

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008
Citat:

Ursprungligen inskrivet av jurand
Du har gjort nästan rätt men nu funkar det så att det event som kopplas till din Knapp körs på server sidan medan klienten dvs webbläsaren uppdateras inte när du klickat på knappen. Kortfattat det du har gjort är rätt men du har inte uppdaterat webbläsaren.

Det finns olika lösningar på det, lägga till en funktion som uppdaterar sidan efter tryckningen, AJAX Update panels eller Javascript.

Nu luras du lite tycker jag. Du behöver itne updatepanels eller JS för att det ska funka. Det jag skrev ovan funkar utan att du gör det. Update Panels är enbart till för att kunna specifera vilka delar av sidan som ska laddas om när. Om du håller musen över en linkbutton ser du att den automatiskt skapar ett JS som gör en postback som sen fångas upp av onclick-eventet.

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2002

Hur ser sidan i övrigt ut då? Ligger allting i ett formulär som också skall exekveras på servern t.ex?

Alltså:

<form id="form1" runat="server"> Dina kontroller här... </form>

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008
Citat:

Ursprungligen inskrivet av MickeBoy
Hur ser sidan i övrigt ut då? Ligger allting i ett formulär som också skall exekveras på servern t.ex?

Alltså:

<form id="form1" runat="server"> Dina kontroller här... </form>

Annars skulle han få felmeddelande på:
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2002

Nej det förstår jag inte. Varför skulle det bli så?

Om du gör ett testprojekt så kommer du finna att sidan som visas kommer se ut ungefär som följer:

<html> <head> <title> </title> </head> <body> <span id="Label1">Label</span> </body> </html>

Trädvy Permalänk
Medlem
Plats
Bromma
Registrerad
Aug 2008
Citat:

Ursprungligen inskrivet av MickeBoy
Nej det förstår jag inte. Varför skulle det bli så?

Om du gör ett testprojekt så kommer du finna att sidan som visas kommer se ut ungefär som följer:

<html> <head> <title> </title> </head> <body> <span id="Label1">Label</span> </body> </html>

Varje gåg jag har haft något som var "runat=server" men inte haft det i en form som också var server har jag fått error.. Dock inte hundra på att det gäller för label med borde det ju göra

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2002
Citat:

Ursprungligen inskrivet av KurreKula
Varje gåg jag har haft något som var "runat=server" men inte haft det i en form som också var server har jag fått error.. Dock inte hundra på att det gäller för label med borde det ju göra

Så lustigt. Jag provade precis och det är som du säger. En label verkar inte ha det kravet, men det har en knapp och en textbox.

Jag var nog lite för snabb inser jag, för när jag läser det första inlägget så står det ju att page_load körs och att koden däri fungerar.

Till sweetvic: Kan man få se resten av koden också?