ASP.NET - Bindowanie danych z zasobów (Resources) do kontrolek
Tematyka bindowania danych z zasobów (Resources) do poszczególnych elementów strony w ASP.NET jest dla mnie o tyle zajmująca, że po dłuższej przerwie w kontaktach z tą technologią, zawsze stanowi problem. Z tego powodu powstaje ten artykuł, w którym kroku pokażę, co zrobić, by dane z zasobów na pewno się ukazały.
W czym problem?
Zasoby to niezwykle wygodne narzędzie, szczególnie, gdy przygotowywany produkt ma być wydany w kilku wersjach językowych. O ile skorzystanie z nich, a zatem podpięcie danych w nich zawartych, do poszczególnych elementów strony takich jak labele etc. w code-behind nie jest żadną filozofią, o tyle zrobienie tego w kodzie strony wymaga kilku zabiegów, o których zwykłem zapominać. Zatem do rzeczy...
Upublicznienie zasobów
Pierwszym etapem drogi do zbindowania danych z zasobów, powinno być upublicznienie tychże zasobów. Pisałem o tym ostatnio, dlatego zachęcam do przeczytania tego artykułu - ASP.NET - Resources i rozwiązanie problemu - CS0122: '...' is inaccessible due to its protection level
Dodanie odpowiedniego namespace-a
Gdy nasze zasoby będą już dostępne do użycia w kodzie strony, należy dołączyć do niej odpowiednią przestrzeń nazw, w której znajdują się nasze zasoby, tak byśmy mieli do nich dostęp. Zakładając, że te resource-y znajdują się w przestrzeni ProjektWeb.Resources, dodajmy do strony poniższy kod, dołączający ten namespace:
Przypinanie treści do kontrolek
Czas na najistotniejszą część zagadnienia, czyli właściwe podpięcie danych do kontrolek. Na potrzeby artykułu założymy, że zasoby nazywają się Texts i zawierają między innymi stringa o nazwie MainPageHeader. Jeżeli chcielibyśmy przypiąć jego zawartość do labela znajdującego się na stronie, należy użyć polecenia podobnego do poniższego:Wydawałoby się, że to już wszystko, jednak po sprawdzeniu wyników na stronie okaże się najprawdopodobniej, że pomimo braku komunikatów o błędach, treść nie zostanie wczytana do labela. Pozostała nam jeszcze jedna rzecz do zrobienia.
Wywołanie metody DataBind()
Ostatnim etapem jest wywołanie w code-begind funkcji DataBind(), która pozwoli na podpięcie danych z zasobów do wszystkich elementów strony. Najlepiej jest to zrobić w metodzie Page_Load(), która w najprostszym przypadku może wyglądać następująco:{
DataBind();
}
I to już wszystko. Po wykonaniu poszczególnych etapów, o których pisałem, dane z zasobów powinny zostać w sposób odpowiedni wczytane we właściwe kontrolki.
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!