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

Permalänk
Medlem

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

Permalänk

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

Visa signatur

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

Permalänk
Medlem

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?

Permalänk

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>

Visa signatur

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

Permalänk
Medlem

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.

Visa signatur

En Laptop

Permalänk
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.

Visa signatur

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

Permalänk
Medlem

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>

Permalänk
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>

Visa signatur

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

Permalänk
Medlem

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>

Permalänk
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

Visa signatur

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

Permalänk
Medlem
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å?