Tjaba! Hej Rickard, jag tror inte det- det finns många scenario då det är så. Ta exempel med att du skall skapa tabeller och rader codebehind och sedan skall kalla dessa- då vill du själv hålla reda på vilka id'n det är du skall och vill fånga. Rickard, Johan, Precis som du säger!INamingContainer problem
Fortsätter här i Serverkontrolldjungeln i en s.k Composite Control ..
Implementerar INamingContainer gränssnittet för att alla children ska få unikt clientID baserat på kontrollhierarkin - så som det står på MSDN.
Fungerar jättebra! - på vissa kontroller.
Buttons, textbox, för dessa genereras unika clientID som renderas i html.
Dock inte t.ex en egen HtmlControls.HtmlGenericControl eller en WebControls.Panel.
Då måste jag injicera ID's manuellt !!!! såhär:
<code>
Controls.Add(span_newproject)
span_newproject.Attributes("id") = span_newproject.ClientID 'must inject clientID myself
</code>
Varför ? Microsoft Bugg ?Sv: INamingContainer problem
Tänk att du vill sätta egenskaper för att visa eller dölja panelen - då behöver du veta vad den heter och inte behöva gissa dig fram. Då är givetvis din egna bestämda namnstandard det snabbaste resultatet.
Sen om det skulle vara en option är väl en annna fråga :-)Sv: INamingContainer problem
ID tag syns inte i html vyn va? men du har ett ID på den om du ittererar genom alla kontroller eller hur?
Vissa kontroller behöver inte ID attributet i html vyn. Så vida du inte skall nyttja javascript mot dem och måste ha dem, då får du som du gör lägga till dem för hand. Detta är ingen bugg.
Mvh JohanSv:INamingContainer problem
ID Finns på dem när jag itererar t.ex, dock i htmlvyn försvinner ID.
Tyvärr så är jag tvungen att duktigt använda js/dhtml mot dessa kontroller
Det fungerar dock bra om man lägger till ID för hand.
Håller på med ett projekt som bakar in bl.a embedded javascript
(där massa id, postback scriptblock och strunt skall ersättas i runtime).
Alltså en sådan composite serverkontroll.
Snart funkar nog allt bra =), tack för feedbacken!