2010-05-24 13 views
6

Utworzyliśmy stronę wzorcową dziedziczącą klasę główną asp.net. Mamy również kontrolki ui, które dziedziczą standardową klasę kontroli interfejsu użytkownika asp.net. Nasza strona wzorcowa zawiera publiczną zmienną składową. Musimy mieć możliwość uzyskania dostępu do tej zmiennej składowej z używanych przez nas kontrolek interfejsu użytkownika. Jednak nie możemy się na to zdobyć? Czy to nasza architektura jest zła? A może sam pomysł - kontrola użytkownika uzyskująca dostęp do zmiennych strony wzorcowej?Uzyskiwanie dostępu do niestandardowej strony wzorcowej za pomocą formantu użytkownika

Odpowiedz

6

Ogólnie rzecz biorąc, to prawdopodobnie nie jest to świetny wzór projektu. Jednak powinieneś być w stanie zrobić coś takiego:

MyMasterType myMaster = this.Page.Master as MyMasterType; 
if (myMaster != null) 
{ 
    myMaster.PublicProperty = value; 
} 
+0

Yeh to właśnie teraz zmierzamy, ale to po prostu źle się dzieje. Zmieniamy kontrolę, by mieć własność publiczną. Strona zawierająca wprowadzi wartość do tej właściwości podczas ładowania. – Bernard

+0

Czy istnieje powód, dla którego wstrzyknięcie wartości jest lepsze niż pobranie jej ze sterowania użytkownika? Już wstrzykiwałem i szukałem sposobu, aby go złapać, ale chętnie zrewidowałbym, czy był ku temu dobry powód. –

+0

Istnieje kilka powodów: 1) Korzystanie z właściwości na stronie wzorcowej pozwala ustawić wartość w innych kontekstach (przyszłe potrzeby) i 2) Architektura nie jest już ściśle sprzężona. Jeśli strona wzorcowa pobiera dane, strona wzorcowa zależy od tego, czy istnieje kontrola użytkownika. – etc

Powiązane problemy