webForumDet fria alternativet

Variabel till codebehind?

16 svar · 622 visningar · startad av Jesper T

Jesper TMedlem sedan nov. 20017 144 inlägg
#1

Går det att sätta några variablar på en sida till en codebehindfil?
mycket enkelt princip exempel.

[b]index.aspx[/b]
<script runat="server">
Dim str as string = "Hej världen!"
</script>

<asp:label id="minText" runat="server" />

[b]codebehind.vb[/b]
minText.Text = str
PDahlenMedlem sedan apr. 2004778 inlägg
#2

Varför vill du göra så?
Blanda inte inline och code-behind, bestäm dig för vilket du vill ha. Men du får gärna försöka ge mig ett RIKTIGT bra skäl. ;)
Din kod bör istället vara:

index.aspx
<asp:label id="minText" runat="server" />

codebehind.vb

Protected minText as Label

Sub Page_Load
 Dim str as string = "Hej världen!"
 minText.Text = str
Jesper TMedlem sedan nov. 20017 144 inlägg
#3

Ja, jag är ca tre dagar ny på detta så ni får ursäkta... :r
Tanken var att ha t.ex. någon form av includefil för att implementera ex. paging eller något annat som kan återanvändas på ett smidigt sätt. Och för att slippa ändra i den filen/classen så tänkte jag att man kunde skicka in lite variablar.

Använder min fulkod igen:

[b]index.aspx[/b]
<script runat="server">
Sub Page_Load()
Dim minTabell as string = "DatabasTabellen"
Dim minakolumner as string = "Id,Epost,Namn"
Dim AntalPosterPerSida as Integer = 10
End Sub
</script>

<asp:repeater id="myRepeater" runat="server"/>

[b]codebehind.vb[/b]
class bra_klass_för_ex_paging
'Ta emot saker som skall vara "flexibla"
'Gör saker
'Visa på sidan index.aspx
end class

Förstår ni tanken?

Jesper TMedlem sedan nov. 20017 144 inlägg
#4

Men det är kanske är någon form av anpassad kontroll eller motsvarande jag letar efter?

renholmMedlem sedan apr. 20012 266 inlägg
#5

Ja, för att åstakomma det du vill används en anpassad kontroll till fördel då du själv kan styra exakt hur en sådan fungerar. Kan vara lite knepigt att få igång i fall den ska utföra komplexa uppgifter, och även att få kläm på hantering av viewstate. Dock behöver man inte bygga saker från grunden utan kan bygga vidare på redan existerande kontroller.

Jesper TMedlem sedan nov. 20017 144 inlägg
#6

Ja, det verkar ju vara ruggigt komplext att göra en sådan för en större applikation. Var läser man om dem?
Detta måste undersökas.

PDahlenMedlem sedan apr. 2004778 inlägg
#7

Det du gör är nog det vanligaste misstaget man gör när man börjar med ASP.NET, du tänker klassisk ASP.
Det man gjorde med include filer i ASP gör man nu med User Controls och egna klasser.
Om du, som du säger, är 3 dagar in i .net så rekommenderar jag att du börjar med de tutorials som finns på http://samples.gotdotnet.com/quickstart/
Där får du lära dig alla grunder du behöver för att komma igång. Det är viktigt att lära sig rätt från början annars riskerar du att få stora prestandaproblem när du kommer igång och bygger applikationer.

GladhMedlem sedan maj 20012 812 inlägg
#8

Lyssna på patrik, du kommer ha mycket mer förståelse för hur du skall göra saker när du gått igenom de exempel som finns där.

Om du vill bli riktigt duktig så finns det dock några steg som du skall gå igenom innan du börjar med ASP.NET (vet inte hur mycket förkunskaper du har, så jag utgår från att du kan ingetting :) )

1. Införskaffa dig en riktigt utvecklingsmiljö, idagsläget så är VS.NET helt överlägsen och en förutsättning för att skapa större projekt. Lär dig denna utvecklingsmiljö, vad den kan och framförallt, hur debugging och felsökning av kod genomförs.

2. Lär dig ett av .NET språk (föredrar C# själv, det är dock en smaksak.) ordentligt, alltså syntax och förståelse av object och valuetypes osv osv.

3. Lär dig ObjectOrienterad Programmering så du förstår saker som: Arv, Interface, Virtual, Polymorfism. Private, Protected, Internal och public.

4. Lär dig mycket om .NET Framework, vilka färdiga klasser finns det, när skall man använda vilken, vad är skillnaden på en HashTable och en ArrayList? Vad gör ICollection interfacet och varför tycker man det är så bra?

5. Lär dig ASP.NET.

Som du ser så är vägen lång för att bli bra i ASP.NET om man var riktigt bra på ASP innan så har man en högre tröskel att ta till sig det objekt orienterade tänket som finns i ASP.NET jämfört med ASP procuduella tänkande.

- M

PDahlenMedlem sedan apr. 2004778 inlägg
#9

Ett par tillägg.

1. Eftersom VS.NET kostar en del så finns även Web Matrix gratis på https://www.asp.net

2. Om du hållit på med ASP och VbScript så är VB.NET syntaxen rätt lik vilket gör det lättare. MEN, ett STOORT MEN, det blir även lättare att göra misstaget att falla tillbaka till ASP-tänk. Då kan det vara en fördel att lära sig C# istället. Men det bästa är att skaffa sig kolla på båda syntaxerna så man kan utnyttja alla resurser på nätet.

6. Glöm hur du tänkte i klassisk ASP.

Jesper TMedlem sedan nov. 20017 144 inlägg
#10

Tack för underbart utförliga och bra svar. :) Det låter dock som att när man är "färdigutbildad" och klar så är det något nytt man måste lära sig ifrån grunden... Det verkar ju vara inne och byta standard...

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

Nu, har jag kollat runt lite och har fortfarande en MASSA! frågor.
Här kommer en gällande ursprungsinlägget.
Att det är poppis med codebehind-formulär är ju inget tvivel om.
Men jag förstår ändå inte anledningen om man inte kan göra CB-formuläret lite "dynamiskt". Alltså att det ser "olika" ut beroende på vad som skall visas.
Låt säga att jag har all kod för att lista ex. medlemmars namn, adress och telefon-nummer i en lista.
Då skulle jag ju kunna återanvända detta formulär på vilken sida jag vill, visst. Men tänk om jag nu denna gång endast vill ha namnen på medlemmarna, då måste jag ju göra en ny klass/CB
(Har säkert missat en viktig vital del och kommer att få bassning nu. *blundar & håller mig för huvudet* :))

PDahlenMedlem sedan apr. 2004778 inlägg
#12

Här kommer bassningen!!! ;)

Närå, jag ska vara snäll.

Men du har missat väldigt mycket så kör vidare med de tutorials som finns.

Du kan återanvända ditt formulär på vilka sidor som helst. Du kan bygga det som en Web User Control eller en Server Control. I kontrollen kan du sedan lägga till egenskaper som styr utseendet. När du ska använda formuläret på en sida så lägger man dit kontrollen som en helt vanlig HTML-tagg och sätter värden på de egenskaper man har.

Om du inte förstår vad jag pratar om så kommer du att förstå det när du lärt dig grunderna i .NET. ;)

Har ju även lagt märke till din signatur "Learning by doing". Det är så jag också funkar MEN, det funkar inte att bara hoppa in i .NET och göra saker. Det är så stort att man måste verkligen lära sig först. Dels Objekt-orientering och sen också vad .NET är uppbyggt av.

Jesper TMedlem sedan nov. 20017 144 inlägg
#13

Ok, tack för din "bassning". :)

Jag förstår.
Men alla tutorials beskriver nästan alltid varje "del" i ett sammanhang. Jag undrar hur det "skall vara" i sin helhet.
När man kommer upp i ett 100-tal sidor med en massa funktioner.
Gör man en mega-CodeBehindfil med en massa classer med arv, eller gör man fler som man stoppar in här och där?
Blandar man sidor med Inline och CB (på olika sidor).

Det skulle vara nyttigt och se det hela i ett lite större sammanhang, för att få ett helhetsintryck.

-"Det är så stort att man måste verkligen lära sig först."

Visst, men någonstans måste man ju börja för innan man är färdigpåläst och fullfjädrad asp.net-utvecklare så kommer ju tekniken att hinna bli föråldrad.... ;)
*Trögfattad, med järnvilja*

PDahlenMedlem sedan apr. 2004778 inlägg
#14

Men alla tutorials beskriver nästan alltid varje "del" i ett sammanhang. Jag undrar hur det "skall vara" i sin helhet.

Eftersom .NET är så enormt stort så är det viktigt att lära sig de här delarna. När man sedan sätter in det i en helhet så vet man redan hur man ska göra för att anpassa allt till vad man vill ha.

När man kommer upp i ett 100-tal sidor med en massa funktioner.
Gör man en mega-CodeBehindfil med en massa classer med arv, eller gör man fler som man stoppar in här och där?

1. Eftersom .NET är objekt-orienterat så kan man dela in sin applikation i delar. De olika delarna kan man sedan göra till separata klassbiblioteksprojekt där man lägger funktioner som skall återanvändas.
2. Om många sidor i applikationen har liknande funktioner så kan man skapa en basklass som sidorna sedan ärver. För att göra detta måste du lära dig objekt-orienterad programmering.

Blandar man sidor med Inline och CB (på olika sidor).

Nej! Blanda inte. Bestäm om du vill köra inline eller CB. Rekommenderar CB eftersom du dels separerar kod och layout och dels får lättare att använda OOP.

Det skulle vara nyttigt och se det hela i ett lite större sammanhang, för att få ett helhetsintryck.

Det finns färdiga open-source applikationer lite överallt.
http://www.asp.net/Default.aspx?tabindex=8&tabid=47 har du starter-kits som är kompletta applikationer byggda för att kunna lära sig olika saker inom .NET.
http://sourceforge.net/index.php och http://gotdotnet.com/ finns mängder av open-source projekt att ladda ner.

Visst, men någonstans måste man ju börja för innan man är färdigpåläst och fullfjädrad asp.net-utvecklare så kommer ju tekniken att hinna bli föråldrad

Japp och med .NET bör man börja från början. Om du inte pysslat med OOP innan behöver du lära dig detta för att kunna utnyttja .NET till fullo.
.NET ramverket är stort. Om du inte skaffar dig en överblick över det så vet du inte var du ska leta efter saker som löser problemet du behöver lösa.
ASP.NET har över 1400(!) färdiga kontroller som utför saker åt dig som man i ASP fick skriva mängder av kod för att göra.

Att komma igång med ASP.NET är enkelt. Man kör igenom de tutorials som finns på http://gotdotnet.com/quickstart/ så har man allt man behöver för att sätta ihop hyfsat avancerade sajter. MEN, så fort man behöver anpassa för att något inte funkar som man behöver det så är det kört om du inte har lärt dig det jag nämnt ovan.

ASP.NET är avancerat och det måste man inse om man ska börja med det. Det är stort och det finns massor av avancerade saker man kan göra. Men det innebär också att det finns väldigt många fel man kan göra. Och det kan innebära att sajten du bygger blir slö som sirap, att den kraschar, vad som helst, bara för att man inte lärt sig rätt sätt att använda vad .NET kan erbjuda.

Så använd din järnvilja till att börja från början och lär dig vad du kan göra.
Om man inte gör det så tar det faktiskt längre tid att lära sig.

Jesper TMedlem sedan nov. 20017 144 inlägg
#15

Tack för ett 100% bra svar. Det uppskattas! :)

Jesper TMedlem sedan nov. 20017 144 inlägg
#16

ASP.NET har över 1400(!) färdiga kontroller..

Finns de dokumenterade på något trevligt ställe.
MSDN?

PDahlenMedlem sedan apr. 2004778 inlägg
#17

De vanligaste har du här http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vboriControlsYouCanUseOnWebForms.asp

Gå upp ett steg för mer, t.ex. Server Controls.

MSDN = Din bästa vän ;)

139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)