Avatar billede mumu Nybegynder
29. august 2005 - 13:37 Der er 2 kommentarer og
1 løsning

ASP.net variable assigning by reference

Jeg er ved at lave en ASP.net side. Ved dynamisk oprettelse af Control elementer i et asp:panel's Controls element, er det i min interesse at lave en byref variable.

Panel myPanel = chkGruppe1.Checked ? pnlGruppe1 : pnlGruppe2;
myPanel.Add (new LiteralControl("<b>test</b>"));


Problemet med ovenstående kode er, at myPanel af en eller anden grund bliver assigned pnlGruppe1 byvalue, således at der ikke oprettes elementer i det oprindelige panel, men i en ny kopi, der kun findes som midlertidig hukommelelse.

Hvorfor byval i stedet for byref?
Er et asp:panel ikke en class?




BESVAR VENLIGST SPØRGSMÅLET I
http://www.eksperten.dk/spm/643878
Avatar billede snepnet Nybegynder
29. august 2005 - 15:03 #1
mm... jeg er ikke sikker på at jeg er helt med på hvad det er du vil opnå - det lyder som om du gerne vil have "én programmatisk instans" der modsvarer 2 "instanser" på selve formen brugeren ser på - er det sådan? (du må meget gerne lige forklare det).

og ja - et panel er en klasse som alle andre, men du skal være opmærksom på, at du ender i html uanset hvad du laver i din kode, og at server kontroller der indsættes i din form sikres unikke id's (hvilket medfører det er 2 forskellige elementer).

mvh
Avatar billede mumu Nybegynder
29. august 2005 - 16:27 #2
Jeg har 2 værdier jeg skal gennemløbe. I stedet for at skrive den samme procedure, der skal udføres på begge værdier, og i stedet for at skrive en funktion, laver jeg et loop der gennemløber de to værdier, fx ved

if (count = 1) currentpanel = pnlGruppe1;
if (count = 2) currentpanel = pnlGruppe2;

Herefter tilføjes nogle Controls til currentpanel.

Problemet er, at ja, der tilføjes nogle Controls til currentpanel, det virker fint. Men fx er currentpanel !== pnlGruppe1.
Avatar billede mumu Nybegynder
29. august 2005 - 17:01 #3
Problemet er løst.

Problemet var, at jeg pga. optimering havde udeladt den dynamiske oprettelse af Control-elementer ved IsPostBack. Dette medførte at kontrollerne forsvandt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester