hallo,
wie kann es sein, dass Control.ClientID nicht immer die korrekte id zurückliefert, welche von asp.net generiert wird?
in einem asp.net-formular generiere ich u.a. dynamisch textboxen.
um später beim absenden des formulars an die inhalte der dynamischen textboxen zu kommen, muss ich mir also beim erzeugen (asp.net 2.0 name mangling sei dank!) die ClientID der textboxen merken.
erwartungsgemäß macht asp.net aus z.b. meiner textbox mit id "TextBox1" folgendes:
<input name="ctl00$ContentPlaceHolderMenu$TextBox1" type="text" id="ctl00_ContentPlaceHolderMenu_TextBox1" />
beim anlegen der texbox liefert box.ClientID aber nicht die ID zurück, wie sie im html-quelltext erscheint (s.o.), sondern merkwürdigerweise die "not-mangled"-ID:
string mangledName = box.ClientID; // liefert "Text1", nicht "ctl00_ContentPlaceHolderMenu_TextBox1" ?!
und aufgrund dieser falschen id kann ich natürlich später beim absenden nicht mehr mit:
TextBox
box = (TextBox)FindControl(mangledName);
darauf zugreifen.
An anderer Stelle (statische controls) funktioniert dieser workaround hingegen.