---
title: "Behålla värden vid popup fönster, uppdatera parent"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/117087-behålla-värden-vid-popup-fönster-uppdatera-parent"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "erka"
published: "2004-12-01T11:25:52.000Z"
updated: "2004-12-02T12:48:03.000Z"
replies: 10
views: 792
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/117087-behålla-värden-vid-popup-fönster-uppdatera-parent"
---

# Behålla värden vid popup fönster, uppdatera parent

## #1 — erka, 2004-12-01T11:25Z

Hej jag har en sida som tar emot ett Id, den fyller en massa dropdownlistkontroller med data, vid varje dropdownlistkontroll finns en imagebutton som öppnar ett popup-fönster med exempelvis

plusSign1.Attributes.Add("onclick", "window.open('HorseCreatePop.aspx',null,'height=450, width=600,status= no, resizable= no, scrollbars=yes, toolbar=no,location=no,menubar=no ');");

Där kan man fylla i x antal textbox och när man klickar på en knapp stängs popup-en och det körs en refresh på fönstret som öppnade popup-en via

```
<!--
function refreshParent() {
window.opener.location.href = window.opener.location.href;

if (window.opener.progressWindow)

{
window.opener.progressWindow.close()
}
window.close();
}
//-->
```

Sidan laddas om helt och värden jag valt i dropdownlistkontrollerna är inte valda, de finns där men om jag tex väljer ett alternativ i den ena, klickar på knappen får upp min popupp, stänger den så blir ju det första värdet i dropdownlisterna valda.

Någon som har ett förslag på hur jag kan lösa det här, hur jag kan få det underliggandet fönstret när det uppdateras via popuppen att komma ihåg tidigare val?

tacksam

Permalänk: https://www.webforum.nu/p/117087

## #2 — yohpops, 2004-12-01T11:32Z

Skicka värdena som querystring istället för att ladda om sidan.

Permalänk: https://www.webforum.nu/p/1497915

## #3 — erka, 2004-12-01T11:37Z

Hur menar du nu? Ska jag skicka querystrings till min sida som öppna fönstret från fönstret så att säga? Ser inte hur det skulle kunna hjälpa

Permalänk: https://www.webforum.nu/p/1497917

## #4 — Gladh, 2004-12-01T12:07Z

Antagligen så håller dina kontroler inte sin state för att du INTE gör en postback, utan gör en refresh på sidan.

Smidigast lösningen är nog att du har en javascriptfunktion på din MAIN-sida som körs när ditt popup-fönster stängs. I denna funktion skall du simulera en postback till sidan. Har aldrig gjort det förr, så jag vet inte säkert hur man gör, men det finns säkert exempel på nätet hur man fejkar en postback till din sida.

\- M

Permalänk: https://www.webforum.nu/p/1497922

## #5 — emission, 2004-12-01T17:08Z

Följande skulle kunna funka...

```

if (window.opener.__doPostBack)
   window.opener.__doPostBack('','');
```

 

Förutsätter att någon av kontrollerna på opener-sidan har krävt ett \__doPostBack-skript, t.ex. en gömd linkbutton.

Permalänk: https://www.webforum.nu/p/1498087

## #6 — erka, 2004-12-01T17:37Z

Tack emission, men vad exakt menar du med "opener-sidan har krävt ett \__doPostBack-skript"

Permalänk: https://www.webforum.nu/p/1498095

## #7 — emission, 2004-12-01T20:14Z

Jo, det jag menar är att  "opener-sidan", dvs. den sida du vill ladda om, måste ha javascript-metoden "\__doPostBack", definierad. Framework:et inkluderar denna metod automatiskt, om det finns en kontroll på sidan som kräver javascript för att kunna göra en submit (dvs, det är inte en submit-knapp). Kolla "view source" på sidan, så hittar du säkert funktionen. 

Eventuellt fungerar även detta (och då krävs inte det som nämns ovan)

```
window.opener.document.forms[0].submit();
```

Permalänk: https://www.webforum.nu/p/1498179

## #8 — erka, 2004-12-01T21:45Z

Tack emission, jag löste det med att lägga till ett RegisterStartupScript och den första kodsnutten du gav mig. Dock uppkom ett eminent problem med den underbara postbacken.

Funktionaliteten i den underliggande sidan går ut på att det är 14 dropdownlistkontroller som populleras med data från en databas i pageload. vid varje dropdownlistkontroll finns en imagebutton, det är om man klickar på en sådan popup-rutan kommer fram. Vad man gör i popupprutan är att man lägger till en post i databasen som sedan även ska finnas i hälften av de 14 dropdownlisterna efter man submittat infon i popup-rutan och den stängts och framkallat postbacken på sidan under. Det är det jag inte kan klura ut hur jag ska lösa.

Som jag har nu så fyller jag bara dropdownlisterna om det inte skett en postback. För jag vill ju inte att de ska fyllas på och fyllas på så att säga. Jag kan heller inte varje gång en postback sker tömma värdena i dropdownlisten och poppulera dem på nytt för då vet jag inte vilken som var vald innan postbacken.

Som jag ser det finns det två lösningar men bägge känns rätt omständiga. Det ena är att i dropdownlisterna onselectionindexchanged dunka i en cookie som talar om vilken listitem som senaste blev vald, den andra är att varje gång en postbacks körs, fylla dem med infon men bara ta med de som inte redan existerar. Finns det något lättare sätt? 

Tacksam för åsikter

Permalänk: https://www.webforum.nu/p/1498224

## #9 — emission, 2004-12-01T22:18Z

Man kan få kontrollen at "komma ihåg" värdet genom att strunta i viewstaten, och sätta värdet själv.

DropDownList1.SelectedValue=Request.Form\["DropDownList1"\];

Det finns 3892 andra tänkbara lösningar, med allt från ren clientside-kod till specialbyggda kontroller. En relativt enkel variant, eftersom lösningen på ett eller annat sätt ändå bygger på kommunikation mellan fönstren, vore att popup-fönstret inte själv uppdaterar databasen, utan att den endast skickar över infon via Javascript.

```

popup:

function AddThing(thing)
{
window.opener.document.forms[0].hiddentextfield.value=thing;
window.opener.__doPostBack('hiddenbutton','');
}

opener:

<input type="hidden" name="hiddentextfield" value="">
<INPUT id="hiddenbutton" style="display:none" type="button" value="" name="hiddenbutton" runat="server">
```

funktionen AddThing gör nu att ServerClick-eventet på hiddenbutton triggas, och då kan du passa på att lägga till i dina dropdowns, genom att "adda" ListItems.

Permalänk: https://www.webforum.nu/p/1498242

## #10 — erka, 2004-12-01T22:44Z

Tack för förslaget, löste det genom att fylla kontrollerna med de värden de inte redan innehöll, fungerade bra.

Permalänk: https://www.webforum.nu/p/1498263

## #11 — emission, 2004-12-02T12:48Z

Gött!

Permalänk: https://www.webforum.nu/p/1498448

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/117087-behålla-värden-vid-popup-fönster-uppdatera-parent
