Avatar billede simsen Mester
22. december 2012 - 21:33 Der er 10 kommentarer og
1 løsning

Parse en listbox fra en side (popup) til en anden side

Hej,

Jeg har følgende jeg gerne vil;
1 side med 1 listbox1 og en knap.
Når der klikkes på knappen åbnes en popup side, som indeholder en listbox2
Nu fylder jeg så en masse ting ind i listbox2 og ved side lukning (altså popup siden) skal jeg så parse fra listbox2 til listbox1.

Det er her jeg har et problem, da jeg slet og ret ikke kan hitte ud af, hvor i linjen, jeg kan tilføje en listbox control's datasource og så til det jeg mangler nemlig at tilføje listbox1's DataBind.

Det jeg har af kode er følgende:
ScriptManager.RegisterStartupScript(btnSave, this.GetType(), "SendPageLinkValues", ("window.opener.document.forms[\'"
                        + (GetStringFromQueryString("form") + ("\'].elements[\'"
                        + (GetStringFromQueryString("control") + ("\'].DataSource = \'"
                        + (lboxEmail.Items + "\'; window.close();")))))), true);

Og jeg skal så have puttet en GetStringFromQueryStrin("control") + .DataBind()

ind i ovennævnte kode - jeg håber en af jer, kan se hvor det skal hen.

mvh
simsen :-)
Avatar billede Syska Mester
23. december 2012 - 00:34 #1
Altså ...

Overnævnte gør jo at du kan Reg JavaScript startup tinge ling.

Hvad er: GetStringFromQueryStrin("control") synes ikke det er en method jeg har set før ... noget du selv har lavet og hvad gør den mere præcis?

.DataBind() er jo ikke server side ting, så jeg ved ikke helt hvad du forventer den skulle gøre klient side.

mvh
Avatar billede simsen Mester
23. december 2012 - 12:16 #2
Hej Buzzzz

Ja, det er en JavaScript startup ting. Og så er jeg flov over, at jeg faktisk bruger GetStringFromQueryString at jeg glemmer, det er min helt egen.

Det den gør (jeg har også for int osv), er at tage en QueryString fra adresselinjen og tjekke at det er en streng (og int for dennes vedkommende) og så returnere værdien.

http://localhost:34289/AnsiWeb/AnsiCrm_Content/Companies.aspx?pid=msg_AnsiCrm_MemberList&popup=1&form=aspnetForm&control=ctl00_ContentPlaceHolder1_ctl00_conTempSearch_ucMessageSpecific_lboxEmailNormal&companyid=1&contactid=0

Jeg får så controllen med over som så hedder: ctl00_ContentPlaceHolder1_ctl00_conTempSearch_ucMessageSpecific_lboxEmailNormal - som er den kontrol, jeg skal have opdateret på side 1 fra popup skærmen (Side 2).

Jeg ved, jeg kan opdatere en streng (f.eks. TextBox) på side 1 fra side 2 med nedenfor viste kode. Og så her jeg håbede, at jeg også kunne opdatere en listbox med de værdier der er i popup skærmen (side 2).

Kode der går godt når det er en opdatering af textbox:

        ScriptManager.RegisterStartupScript(btnSave, this.GetType(), "SendPageLinkValues", ("window.opener.document.forms[\'"
                        + (GetStringFromQueryString("form") + ("\'].elements[\'"
                        + (GetStringFromQueryString("control") + ("\'].value = \'"
                        + (NameList.ToString() + "\'; window.close();")))))), true);

NameList = en almindelig text streng med værdier.

Jeg håber, du kan hitte ud af ovennævnte forklaring, ellers spørg endelig.

mvh
simsen :-)
Avatar billede Syska Mester
23. december 2012 - 12:34 #3
Jeg er ikke så stærk i WebForms og deres mærkelige måde at lave javascript på ... og kan ikke lige helt gennemskue hvorfor du først vil select dem fra A => B ... og derefter kopiere til C ...

Men google giver i hvert fald et par hits:
https://www.google.dk/#hl=da&safe=off&tbo=d&output=search&sclient=psy-ab&q=javascript+copy+select+options+from+one+select+to+another&oq=javascript+copy+select+options+from+one+select+to+another&gs_l=hp.12...0.0.1.7414.0.0.0.0.0.0.0.0..0.0...0.0...1c.MKS5YnhFh7c&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&bvm=bv.1355534169,d.Yms&fp=a230954211c365f&bpcl=40096503&biw=1920&bih=1075

http://stackoverflow.com/questions/10781500/how-to-copy-option-from-one-select-to-another

http://stackoverflow.com/questions/6198684/javascript-how-to-copy-all-options-from-one-select-element-to-another
Avatar billede simsen Mester
23. december 2012 - 12:48 #4
Hov der er noget, jeg ikke har formidlet godt nok - der er KUN 2 sider.

Side 1 hvor jeg klikker på en knap, som så åbner side 2 (som popup). På side 2 laver jeg så (eller brugeren rettere sagt) en masse valg, der bliver smidt i en listbox. Indholdet af den listbox skal jeg så have med tilbage til side 1 - som også har en listbox. Og det er i denne listbox indholdet skal "flyttes over".
Avatar billede Syska Mester
23. december 2012 - 12:51 #5
Yes, A, B og C ... :-)

Snakkede ikke om sider, mere måden det hele blev gjort på.
Avatar billede simsen Mester
23. december 2012 - 12:52 #6
Altså - der hvor jeg VED det virker, er med tekstboks

Her har jeg en tom TextBox på side 1, nu åbner jeg så side 2 i en popup og laver en sætning (som streng), den streng, skal jeg så have ført ind i TextBox på side 1, når jeg lukker popup vinduet (altså side 2). Og dette fungerer ganske glimrende.
Avatar billede simsen Mester
23. december 2012 - 12:54 #7
Det forstår jeg så ikke - fordi sådan som jeg ser det så skal det kun være
A til B til A - altså A er tom så laver jeg noget i B som jeg vil have tilbage til A
Avatar billede Syska Mester
23. december 2012 - 12:57 #8
Det er også hvad jeg kalder A, B og C ... men nok om det.

Kunne du ikke bruge nogen af de links jeg postede til at flytte elementer med? Altså mellem din Select lister?

mvh
Avatar billede simsen Mester
23. december 2012 - 13:00 #9
Jeg er i fuld gang med at tjekke ud - jeg vender frygtelig tilbage - som altid :-)
Avatar billede simsen Mester
23. december 2012 - 19:39 #10
Hej,

Så har jeg brugt hele dagen og intet har hjulpet, så jeg opgiver det her med popup - jeg må re-designe siden og så bruge noget ModalPopup i stedet.

Tak for hjælpen og smid et svar.

mvh
simsen :-)
Avatar billede simsen Mester
04. maj 2013 - 19:01 #11
Lukker - skriv endelig hvis du ønsker points :-)
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