Archiwum kategorii ‘ASP‘

 
 

Kontrolki kompozytowe w ASP.NET a ClientID

Wyprodukowałem sobie dzisiaj bardzo prostą kontrolkę kompozytową. Jej zadaniem jest pokazywanie i chowanie div’a z tekstem. Całość odbywa się tylko po stronie klienta. Normalnie (mam na myśli HTML) byłoby to banalnie proste, niestety nie w ASP.

Div’a zastąpił mi Panel, a przycisk po wciśnięciu którego pojawia się panel, powstał jako oddzielna kontrolka (także kompozytowa). Wszystko ładnie złożyłem i opakowałem w metodę CreateChildControls(). Ku mojemu zdziwieniu JavaScript wywoływany po wciśnięciu przycisku powodował błąd. Okazuje się, że ClientId panelu jest puste (względnie nie zawiera wartości, której się spodziewam). Dlaczego? Otóż ClientId nie jest dostępne z poziomu metody CreateChildControls(), prawidłową wartość możemy uzyskać dopiero tuż przed wyrenderowaniem kontrolki, czyli np. na preRenderze.

protected override void OnPreRender(EventArgs e)
{
	// tutaj możemy się odwołać do ClientId kontrolek
}

Faktem jest, że unikalne ID tagów html’owych generowanych przez ASP może być zbudowane tylko przy kompletnym drzewie kontrolek, ale czy nie można było zaoszczędzić czasu i napisać o tym w dokumentacji właściwości ClientId?

‘asp’ is an unrecognized tag prefix or device filter

… czyli co zrobić gdy Visual Studio nie rozpoznaje tagów asp

Kilka dni temu powróciłem do naszego starego projektu w ASP.NET, w celu dodania kilku nowych fajerwerków. Ponieważ już od jakiegoś czasu nie miałem styczności z ASP musiałem poświęcić chwilę na małe rozpoznanie i przygotowanie stanowiska pracy. Gdy tylko usiadłem do Visual Studio 2005 (Web Developer), powróciły przykre wspomnienia dotyczące SourceSafe’a i pracy z całym środowiskiem. Jednym z bardziej wkurzających komunikatów, które zobaczyłem podczas ponownego wdrażania się w projekt był “słynny” “‘asp’ is an unrecognized tag prefix or device filter”. Czyli coś w stylu, VS informuje, że nie potrafi rozpoznać tagów ASP. Ręce mi opadły.

Z tego co udało mi się ustalić, rozwiązań jest kilka w zależności od problemu i skomplikowania projektu.

  • jeśli korzystasz z szablonów Master Page, a błąd występuje na podstronie dziedziczącej z szablonu lub używającej go, można uniknąć błędu otwierając w edytorze wykorzystywany szablon Master Page (głupie, ale na prawdę pomaga).
  • edytor VS 2005 bazuje na dynamicznie generowanych XML schemes, opisujących kontrolki ASPowe. Stąd błędy w wygenerowanych plikach mogą powodować wspomniany wcześniej komunikat. Rozwiązaniem w takim wypadku jest zamknięcie VS i wyczyszczenie katalogu zawierającego schematy xml. Katalog znajduje się pod adresem:
    C:\Documents and Settings\[Username]\Dane aplikacji\Microsoft\VisualStudio\8.0\ReflectedSchemas

    Po wyczyszczeniu katalogu należy ponownie uruchomić VS. Teraz schematy powinny się wygenerować na nowo i teoretycznie problem jest rozwiązany.

  • Komunikat o nierozpoznaniu tagów ASP może pojawić się również gdy w kodzie występują błędy, które uniemożliwiają jego kompilację. Zazwyczaj usunięcie błędów prowadzi do ponownego zaakceptowania tagów ASP.

Problem z rozpoznawaniem tagów ASP jest o tyle dziwny, że w 99% kod kompiluje się pod IIS, ale niestety nie działa pod VS.

W razie dalszych problemów polecam zapoznanie się z wątkami:
http://blogs.msdn.com/mikhailarkhipov/archive/2005/04/21/410557.aspx i
http://forums.asp.net/p/873238/883002.aspx#883002

Pierwszy z nich to blog developera VWD, zaczerpnąć informacji bliżej źródła już się chyba nie da;)

Hosting Windows na home.pl

Źródło: home.pl

Home.pl, jedna z największych polskich firm oferujących usługi hostingowe, uruchomiła ofertę “Hosting Windows“. Usługa ta pozwala na korzystanie z pełnej funkcjonalności platformy Microsoftu. Konfiguracja oparta jest o Windows Server 2003 i Microsoft SQL Server 2005. Rozwiązanie to pozwala na stworzenie w pełni funkcjonalnego serwisu opartego o technologie Asp.NET 2.0, Ajax i MsSQL. Więcej informacji pod adresem home.pl.

Oferta pracy: programista PHP/ASP.NET/JAVA

Poszukuję programistów aplikacji internetowych (technologie: PHP / ASP / JAVA). Więcej informacji na stronie Praca lub na stronie firmy Posterus.