Tilgå Default.aspx controls fra andre klasser

Tags:    .net

Hej.

Jeg håber meget i kan hjælpe med at lyse et problem op jeg har, inden jeg skaldet på en smertefuld måde.

Jeg har en hovedside i min website applikation (.net 4.0), Default.aspx (og dertilhørende code-behind Default.aspx.cs).

Der er noget Ajax script på denne side, som invoker en Webmethod jeg har i en AutoComplete.cs klasse i App_Code folderen. Denne metode returnerer så et resultat til et tekstfelt på siden.
Senere vil jeg så fra denne klasse så meget gerne aflæse hvad der står i dette felt, da det har ændret sig efterfølgende. Altså txtBox1.Text property´en.

Hvordan gør jeg så det?

Hvordan tilgår jeg Default.aspx controls fra en anden klasse? Default er nemlig ikke synlig fra andre klasser.
Der er noget asp.net princip jeg ikke helt er med på her.

Håber meget i kan hjælpe!! :)

Mvh
Lars



4 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hej Lars,

Det korte svar er at det bør du ikke :). Du bør i stedet sende værdien fra din ASPX/CodeBehind side til din AutoComplete.cs klasse, enten som parameter til en funktion eller ved at sætte en property på AutoComplete klassen.

Mvh.

Kasper (TSW)



Det skal være en mulighed, ellers er dit design bygget dårligt op.

Hvis du i samme klasse skal bruge værdien af hvad der står i der står i tekstboksten så brug en parameter som Kasper er inde på, hvor du enten laver en internal variabel til det eller en property.

Det er den rigtige måde da du ikke bør tilgå kontrollerne på aspx siden udenfor den cs der hører til den.



Hej Thomas.

Tak for dit hurtige svar!
Men hvad nu hvis det ikke er en mulighed? Det er denne AutoComplete.cs klasse som står for at skulle holde øje med dette tekstfelt, for at styre andre controls på default siden..

Er der ingen muligheder? Det må være en meget almindelige problemstilling?

Tak for din tid! :)

Hej Lars,

Det korte svar er at det bør du ikke :). Du bør i stedet sende værdien fra din ASPX/CodeBehind side til din AutoComplete.cs klasse, enten som parameter til en funktion eller ved at sætte en property på AutoComplete klassen.






Ok.

Så må jeg gøre det på den måde. Tak for hjælpen :)



t