webForumDet fria alternativet

Sätta värden i usercontrol?

.NET

9 svar · 672 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Om man skapar en usercontrol hur kan man då på ett smidigt sätt sätta värden till den?
Är det att skriva in de direkt i taggen eller finns det andra sätt som är smidigare?

<Min:Kontroll id="Kontroll" param1="Värde1" param2="Värde2" />

Låt säga att jag vill ha värden som jag kommer att återanvända i alla användarkontroller utan att jag vill hårdkoda in dem.

ex. Min:Kontroll param1 är alltid Värde1 medans param2 ändrar sig ibland.

Medlem sedan juli 2004206 inlägg
#2

I din usercontrol:

private m_sMinVariabel

Public Property sMinVariabel() As String
	Get
		Return m_sMinVariabel
	End Get
	Set(ByVal Value As String)
		m_sMinVariabel = Value
	End Set
End Property

sen kan du komma åt denna variabel ifrån din codebehind bara du dim'ar upp din usercontrol först. I din usercontrol så använder du dig av den variable som du deklarerade som private (m_sMinVariabel), medans du ifrån andra sidor använder dig av dittObjekt.sMinVariabel.

Du kan givetvis sätta variabeln såsom du gjorde i ditt exempel.

Medlem sedan nov. 20017 144 inlägg
#3

/R :r

Medlem sedan okt. 20041 556 inlägg
#4

Ok tack, men det var inte riktigt hur man tar hand om variablarna utan på vilket sätt man sätter dem.

I taggen, i web.config, i global.asax osv..

Medlem sedan dec. 19996 721 inlägg
#5

I taggen funkar alltid.

Om param1 alltid är "Värde1" så är det ju onödigt att ha den som en tillgänglig egenskap

Medlem sedan okt. 20041 556 inlägg
#6

Ok, men om jag tänker använda samma kontroll på tex olika domäner och vill slippa hårdkoda in dessa "fasta" värden varje gång så kan det kanske vara smidigt och ändå ha dem lite sådär lagom "statiskt - flexibla" ... ;) Bara en tanke. Tänkte slippa att kompilera om en massa dll:er osv bara för att jag vill ha kontrollen i ett annat sammanhang. Men då tror jag ändå att jag tar med den "statiska" i kontrolltaggen.

/Tack

Medlem sedan jan. 2004501 inlägg
#7

Det är en bra lösning för att slippa hårdkoda en massa junk.

Men jag tror du enbat behöver deklarerar en public string minVariabel i klassen.

Du behöver inte ha en porperty för det.

Medlem sedan juli 2004206 inlägg
#8

Du sätter variablerna där du behöver sätta dom, ingen annan än du kan veta var du behöver göra detta. Behöver du räkna och dona med din variabel som ska in i uc'n så gör du detta i codebehind, annars kan du ju bara skicka in den som du gjorde i ditt exempel.

Medlem sedan okt. 20041 556 inlägg
#9

Tack alla.

Medlem sedan juli 2004206 inlägg
#10

Ett tillägg till Asmodies kommentar: en property är bäst om uc'n ska användas i flera projekt. Det är inte kul att förlita sig på globalt deklarerade variabler när man drar in sin uc i ett nytt (befintligt?) projekt. Har du din variabel som en property så undviker man iaf krockar.

416 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
142 ms — hämta statistik (db)
136 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)