Hvis du har en konstruktion alá:
protected override void Render(HtmlTextWriter writer)
{
// some .WriteStuff
base.Render(writer);
}
Vil du få det du renderer ud efter </html>
Er det sådan noget du har - eller renderer du hele siden selv?
Som udgangspunkt synes jeg det er en skidt idé, men hvis du sørger for at rendere f.eks. dine inputfelter inde i din form, kan du hente dem med Request.Form["id'et på html-elementet"].
Hvordan kan det være du gør det på den måde... Det er ikke så hmm... ASP.NET-like.
Mvh
Jeg gør det egentligt for at lege lidt med postbacks af dynamisk oprettede felter. Også for at se hvordan jeg kan fange posts fra andre sites (f.eks gamle ASP eller PHP) til mine sider.
De elementer der genereres, kommer fra en web kontrol der ligger på siden, så dét at spørge på Request.Form["id"], fungerer ikke, da elementerne får et navn ala ctl00$EtEllerAndet$Ctl00@KontrollensID.
Hvis jeg så bare kunne finde ud af, at referere korrekt til felterne med det prefix de får, ville det være fint - og ClientID fungerer ikke her, da ASP.nET som sagt frefixer alle de elementer der oprettes.
Og undskyld stavefejlene... :-)
Jeg har selv en masse dynamiske kontroller, og de fleste af dem får jeg fat i ved også at lave en eventhandler til dem. Ved postback kan man inde i eventhandleren se det oprindelige ID.
Hvad mener du med "ClientID fungerer ikke her" ? - den bliver jo strikket sammen, som du selv har bemærket (og får en værdi først det øjeblik kontrollen ER placeret i kontroltræet, dvs. assignet til sin parent osv osv).
..og hvis jeg har misforstået det, og du således ønsker at hente værdier på dynamiske felter, men postback er trigget af et andet event, så er der jo altid viewstate - værdierne ligger der jo, når har genskabt kontrollerne ved postback (altså hvis du kører det hele ASP.NET-like, som snepnet bemærker) :)
Jeg har egentligt slettet koden igen koden igen det det funger af h.t., men det jeg gør er nogenlunde sådan hér:
På min Page (som bruger en Master):
<MitTagPrefix:MinKontrol ID="MinKontrol" />
I "MinKontrol" har jeg følgende HTML med i kontrollens designer:
<input type="hidden" name="<% =this.UniqueID %>" id="<% = this.UniqueID %>" />
Dette for at få raised events til min IPostBackDataHandler.
I kontrollens Render metode:
writer.Write "<input id='MitTekstFelt' name='MitTekstFelt' /">
Når der så laves postbacks til min side (og dermed min kontrol), så forsøger jeg at hente data via Request["MitTekstFelt"], men det giver intet resultat...
Ingen fungerende svar. Lukker spørgsmålet