---
title: "ListBox och PostBack"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/97014-listbox-och-postback"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "kristoffer"
published: "2004-02-10T09:35:43.000Z"
updated: "2004-02-11T21:41:51.000Z"
replies: 10
views: 467
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/97014-listbox-och-postback"
---

# ListBox och PostBack

## #1 — kristoffer, 2004-02-10T09:35Z



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

## #2 — NETwork, 2004-02-10T09:44Z

Kanske kan du lösa det om du med javascriptet samtidigt fyller en osynlig textbox med dina items i rätt ordning och sedan plockar dina data från denna när du binder om din listbox?

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

## #3 — kristoffer, 2004-02-10T10:01Z

Usch, det låter ugly. Men det måste ju vara nåt som är fel med det sätt som jag har försökt lösa problemet på?

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

## #4 — Nöff, 2004-02-10T12:03Z

För det första tror jag inte det är nån bra ide att använda java-script på dynamiskt skapade webcontrols, lös det istället med codebehind.
Och sen måste du **alltid** skapa om din listbox i **Page_Load/Page_Init**. Och för att trigga Viewstate på ListBox/DropDownListor ska du insert:era ListItem:s **efter** du lagt till din DropDownList/ListBox:en i Panel/Repeater. På så sätt triggas TrackViewstate.

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

## #5 — kristoffer, 2004-02-10T12:09Z

Tack för de svaren. Ska kolla.

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

## #6 — Gladh, 2004-02-10T12:11Z

> ViewState skall ju återställa kontrollers properties, varför görs inte detta?

ViewStaten har inte som uppgift att återställa kontrollers postade-värden efter en postback, det är vanlig missuppfattning. Däremot så återskaps dina värden som finns i dropdownlistan, men endast om de är skapade i codebehind.
 
Paul Wilson har en bra article om ViewStaten här: <http://authors.aspalliance.com/PaulWilson/Articles/?id=7>

Dy kan även läsa på lite om Postback på: <http://www.aspalliance.com/articleViewer.aspx?aId=134>

\- Magnus

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

## #7 — Nöff, 2004-02-10T12:27Z

Detta är ett av mysterierna med Viewstate på dynamiska kontroller, det magiska sker när man lägger till ListItems **efter** man lagt till DropDownListen på sidan, lägger man i ListItems **före** man lagt till DropDownListen på sidan triggas inte TrackViewState.

> ViewStaten har inte som uppgift att återställa kontrollers postade-värden efter en postback, det är vanlig missuppfattning.

 
jo, om man lägger i items **efter** man skapat control:en då triggas TrackViewState  :e

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

## #8 — kristoffer, 2004-02-11T09:52Z

Det fungerar bättre nu. Efter PostBack behålls ordningen för itemsen i ListBoxen. Däremot får inte Itemsen nya index, trots att de är sorterade enligt de nya indexen.

Om vi har listan:

a
b
c

a väljs och knapp NER klickas och då ser vi följande:

b
a
c

men indexen är fortfarande a=0, b=1, c=2, dvs nästa knappklick ändrar utifrån det ursprungliga

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

## #9 — kristoffer, 2004-02-11T10:20Z

Nu har jag till slut fått det att fungera. Jag skapar om ListBoxen i varje PostBack, men dess Items enbart i (!IsPostBack).

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

## #10 — Gladh, 2004-02-11T19:39Z

> citat:
> \--------------------------------------------------------------------------------
> ViewStaten har inte som uppgift att återställa kontrollers postade-värden efter en postback, det är vanlig missuppfattning.
> \--------------------------------------------------------------------------------
> 
> 
> jo, om man lägger i items efter man skapat control:en då triggas TrackViewState

hehe :) Du läser inte tillräckligt noga...

Itemen sparas i viewstaten och flyttas över, men en kontrolls postback-värde sparsa inte i viewstaten. Alltså om du tar en textbox och fyller den med ett värde så sparas inte det värdet i ViewStaten. Precis som Wilson skriver i sin artikel, så kan man enkelt kolla det genom att sätta EnableViewState = false på textboxen och se att värdet är kvar efter en postback.

Däremot så hade items i en dropdownlista försvunnit om man tagit bort viewstaten. Och jag fick intrycket att han fyllde sin dropdownlista med javascript och dessa värden finns inte i viewstaten, men det var nog jag som missuppfattade kristofer :(

\- M

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

## #11 — Nöff, 2004-02-11T21:41Z

Naj :), det är detta som så skumt med dropdownlistor, man kan återskapa egenskaperna, och hur man gör det är beroende på om man lägger in items före eller efter skapandet av kontrollen, helsnurrigt? ;) , javisst, tycker jag också, kolla denna artikel:

<http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx>

dock den handlar om en annan grej men han tar också upp trackviewstate, scrolla ner till "property restoration"

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/97014-listbox-och-postback
