get/set problem

Tags:    c# asp.net

<< < 12 > >>
Hej alle.

Jeg er i gang med en ASP.NET side. Men jeg har et problem med min get/set funktion.
I min WebForm1.aspx.cs klasse en metode som tilføjer en værdi til min get/set metode i min GetAndSetClass.cs klasse. Og disse bliver tilføjet helt fint og uden problemer.

I en anden klasse TableBuildUp.cs når jeg så prøver at "kalde" denne værdi som jeg lige har lagt over i min get/set, så får jeg en forkert værdi. Så får jeg den String værdi som jeg har givet min String som min get/set metode bruger.

Mit spøglsmål er, hvorfor får jeg den forkerte værdi fordi jeg kalder min get/set fra en anden .cs klasse.
Fordi hvis jeg med den samme metode kalder get/set fra WebForm1.aspx.cs så får jeg den rigtige værdi.

f.eks jeg siger GetAndSet.cellOne = "fisk". Når jeg så siger cell1.text = GetAndSet.cellOne så får jeg værdien Removed.

Jeg håber det giver mening, og jeg er ingen C# haj.
Hvis det er nogle informationer som i mangler må i endelig sige til.
Lidt kode.

tilføj værdi WebForm1.aspx.cs
Fold kodeboks ind/udCSharp kode 


Hvordan min get/set metode ser ud GetAndSetClass.cs
Fold kodeboks ind/udCSharp kode 


Kald get/set værdi TableBuildUp.cs
Fold kodeboks ind/udCSharp kode 


Tak på forhånd.



Indlæg senest redigeret d. 05.12.2011 14:47 af Bruger #16700
14 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 9 karma
Sorter efter stemmer Sorter efter dato
Så hvis jeg forstår det korrekt så læser du fra en enkelt tekstfil, som læses ind i dit eget objekt så du har styr på hver værdi for hver række i denne tekstfil? Altså sådan så at du læser en række, og splitter på ";" og så sætter disse værdier ind i dit objekt for at kunne sætte dem til celle1 til 10? Og når du har læst en række så gør du det samme igen for næste række?
Altså noget lign. dette:

OnLoad:
1. Skriv overskrifter i tabellen i form1
2. Læs linie 1
3. Del på ";"
4. Lig værdier ind i getAndSet-objekt
5. Lig ind i Tabellen i Form1
6. Gå til 2 (med næste linie)

Og formålet er "blot" at læse fra en tekstfil ind i en tabel ved load af siden?
For i så fald har jeg et foreslag til noget mere simpel kode og objekt til håndtering af samme, og også nemmere i tilfælde af du tilføjet rækker/felter i din tekstfil.



Hej Laurits.

Så hvis jeg forstår det korrekt så læser du fra en enkelt tekstfil, som læses ind i dit eget objekt så du har styr på hver værdi for hver række i denne tekstfil?

Ja

Altså sådan så at du læser en række, og splitter på ";" og så sætter disse værdier ind i dit objekt for at kunne sætte dem til celle1 til 10? Og når du har læst en række så gør du det samme igen for næste række?

Ja.

OnLoad, overskrift tabel. Taget fra eksemplet ovenfor.
#1 kald metoden til at lave tabellen
#1.1 der opretter tabellen med cellerne, width, color, border pixels.
#2 Hent de statiske fra get. (Navn |Vejnavn |Skole|Mad |Bil)
#3 Tilføj værdier til de korrekte celler.
#4 add til form1.

Onload, dynamiske celler/værdier.
#1 Læs (alle) linje / linjer fra tekst fil
#2 split på "#"
#3 tilføj til ArrayList
foreach start
#4 tilføj værdier til get/set
#5 kald metoden til at lave tabellen
#5.1 der opretter tabellen med cellerne, width, color, border pixels.
#6 Hent de dynamiske værdier fra get/set. (f.eks lasse|kioskVej|ja |pålæg|Nej)
#7 tilføj værdier til de korrekte celler.
#8 add tabel til en anden ArrayList
foreach stop

foreach start
#9 add til form1 (adder alle objekter / linjerne fra tekst filen, som findes i ArrayListen. Tilføjet fra #8)
foreach stop

Mener jeg fil alle punkterne :p.
Og formålet er "blot" at læse fra en tekstfil ind i en tabel ved load af siden?

Ja. Dog er hver linje i tekst filen en ny seperat tabel på siden.

For i så fald har jeg et foreslag til noget mere simpel kode og objekt til håndtering af samme, og også nemmere i tilfælde af du tilføjet rækker/felter i din tekstfil.

Det jo bare lækkert.

Ville det give mere mening for dig, hvis jeg postede et billed eksempel af hvordan det ser ud fra min side?
Så skal jeg bare vide hvordan du ville have det sendt. Om man kan gøre det igennem siden her.

Igen tak for hjælpen.
Mvh.



Indlæg senest redigeret d. 12.12.2011 10:09 af Bruger #16700
Hejsa igen Christian

Beklager der gik så lang tid før jeg kom tilbage, men havde ærlig talt en smule travlt. Håber du har fået dit problem løst, men ellers vil jeg komme med lidt start til nogle forslag der måske kan gøre det bedre og nemmere for dig.

Jeg vil starte med at sige at dette indlæg nok vil blive rettet i det nye år (eller tilføjet et nyt hvis du svarer) fordi jeg sidder på en maskine uden Visual Studio så koden bliver lidt begrænset.

Jeg ville foreslå at istedet for at samle det hele i en tekstfil så spred det ud over flere filer.
Og hvis du har behov for at at nemt få indlæst mange filer så lav en fil hvori du skriver filnavnene i.
Det er lettere at læse for dig ved at have en fil med alle data til en enkelt tabel.
Derfor foreslår jeg dig at du benytter CSV-filer af den simple grund at det er effektivt og hvis du senere hen gerne vil benytte en database istedet så er en CSV-fil rigtigt nem at indlæse dertil.
Det du skal være opmærksom på er at den første linie er der hvor du skriver overskrifterne på dine kolonner og så er de semikolonseparerede ( ; ). Det er også nemt at ændre indhold til disse filer da Excel kan læse denne type fil og gøre det nemt for dig at rette indholdet da Excel strukturerer det for dig i kolonner for dig.

Det første du ønsker er at lave en klasse der skal håndtere jobbet at læse værdierne fra din csv-fil. Om du så ønsker at der skal komme nogle objekter ud af det eller om der skal komme renne data er så op til dig selv. Oftest vil man lave specifikke objekter der passer til indholdet af CSV-filen og det der skal i tabellen, men hvis du skal lave noget der kan læse alle mulige forskellige data som ikke har en fast struktur du kender kan det også lade sig gøre.
Man kan sagtens lave noget der håndterer så mange kolloner der er i csv-filen selvom den er forskellig fra gang til gang (altså csv-fil til csv-fil), men hvis filerne har samme struktur ønsker man oftest at lave et objekt der passer til og viser denne struktur.

Det næste du skal lave er en klasse der bruges til at at opbygge din tabel og den skal bruges i samarbejde med den første klasse du har lavet for at få data ind i din tabel.
Derved letter du arbejdsgangen med at opbygge tabellen.
Når jeg får puttet noget kode herind skal jeg vise dig hvordan du laver overloads af metoder således du kan opbygge mere avancerede metoder. Det vil du tit kunne få brug for, og meget brugbart i objekt orientet programmering.


Jeg kunne heller ikke undgå at se at du styler din tabel i din codebehind (.aspx.cs), men for at gøre det nemmere for dig selv med vedligeholdelse og ændringer så overvej at begynde at se på Cascading Style Sheet (CSS).
Her definerer du klasser som skrives med et punktum til start og så et navn, efterfulgt af tuborg-paranteser:
Fold kodeboks ind/udCSS kode 

Dette er et eksempel på en css-klasse

Fordelen ved at bruge denne css-fil er at at du i din kode kan henvise til denne klasse og du derved får stylet det du laver som der står beskrevet indeni.
Fordelen her er igen også at når du vil ændre farven en lille smule, gøre kolonner breddere eller andet, så kan du gøre dette et sted og det vil slå igennem alle steder du har brugt denne klasse. Sådan som din kode er nu ville du skulle rette flere steder for at skulle skifte den samme farve ud med en anden, og CSS ville dermed lette det for dig :)





Indlæg senest redigeret d. 31.12.2011 00:09 af Bruger #16651
Hvorfor har du en "public String _CellOne = "Removed";?

Det er den der gør, at du altid får removed tilbage.



<< < 12 > >>
t