Avatar billede unknown_someone Juniormester
06. marts 2007 - 11:36 Der er 7 kommentarer og
1 løsning

ListBox tømmes efter Postback

Har en listbox (med viewstate sat til true) og vha nogle knapper kan jeg tilføje værdier til den. Ved første klik virker det hele fint - men klikker jeg en ny knap tilføjes rigtig nok den nye værdi men den/de gamle værdier bliver fjernet.

Knapperne gør intet andet ud over at tilføje værdier som følgende: test.Items.Add(Element);
Avatar billede snepnet Nybegynder
06. marts 2007 - 12:09 #1
Er det måske et spørgsmål om at du databinder den hver gang til nogle bestemt værdier?
- Du kan eventuelt vise den komplette kode der vedrører listen.
Mvh
Avatar billede snepnet Nybegynder
06. marts 2007 - 12:10 #2
Er viewstate også true på siden?
Mvh
Avatar billede unknown_someone Juniormester
06. marts 2007 - 12:47 #3
viewstate fungerer på andre elementer på siden.

Mine kontroller:

<asp:ListBox ID="test" runat="server" SelectionMode="Multiple" EnableViewState="true"></asp:ListBox>
<asp:Button ID="moveup" runat="server" Text="Tilføj" OnClick="moveup_Click" />
<asp:ListBox ID="tagher" runat="server" DataSourceID="testDataSource" DataTextField="navn" SelectionMode="Multiple" DataValueField="id" EnableViewState="true"></asp:ListBox>

------------

min klik-funktion i codebehind:

protected void moveup_Click(object sender, EventArgs e)
{
  foreach(ListItem Element in tagher.Items)
  {
    if (Element.Selected)
    {
      test.Items.Add(Element);
    }
  }
}
Avatar billede snepnet Nybegynder
06. marts 2007 - 13:02 #4
Er det det eneste du har i koden der laver noget på kontrollen test?
... Prøv bare at gøre sådan her hver gang - for testens skyld:
test.Items.Add(DateTime.Now.ToString());
Mvh
Avatar billede unknown_someone Juniormester
06. marts 2007 - 13:14 #5
ja - det er det eneste.

Jeg har lige prøvet at lave et nyt eksempel i en absolut blank side - og her virker ListBox problemfrit (en tom listbox, en textbox og en knap der indsætter vha "ListBox1.Items.Add(new ListItem(TextBox1.Text, TextBox1.Text));"). Men så snart jeg overfører den kode til min rigtige side - en side der får design fra en masterpage - opstår problemet igen. Koden;

<%@ Page Language="C#" MasterPageFile="~/Constants/MasterPage.master" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<asp:Content ID="ctest" ContentPlaceHolderID="cphtest" Runat="Server">

  <asp:ListBox ID="ListBox1" runat="server" EnableViewState="true"></asp:ListBox>
  <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
 
</asp:Content>

------------------------

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class test : System.Web.UI.Page
{
  protected void Button1_Click(object sender, EventArgs e)
  {
    ListBox1.Items.Add(new ListItem(TextBox1.Text, TextBox1.Text));
  }
}

Den TextBox der bliver brugt holder dog state på både den rene aspx-side og på den ovenstående som altså bruger masterpagefile. Kun ListBox opfører sig forskelligt.
Avatar billede unknown_someone Juniormester
06. marts 2007 - 13:42 #6
og "selvfølgelig" virker hele funktionaliteten også hvis det lægges direkte på masterpage - kun på contantpage er problemet der.
Avatar billede unknown_someone Juniormester
06. marts 2007 - 14:14 #7
gr8 - selvom jeg var overbevist om at min viewstate var som den skulle være var den det ikke. Manglede det på min contentplaceholder så alt fungerer nu.

læg et svar og få point :)
Avatar billede snepnet Nybegynder
06. marts 2007 - 14:52 #8
Jamen du får da bare et svar så :o)
Mvh
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