Avatar billede davidfossil Nybegynder
26. september 2005 - 09:59 Der er 5 kommentarer og
1 løsning

textBox.Visible = false, uden at glemme teksten!

Jeg har en temmelig lang formular (spørgeskema) som jeg ønsker at dele over i flere sider. Sådan som applikationen er bygget i dag ville det være klart det letteste, om jeg blot kunne skjule de controls der ikke er på den aktive side. Altså løbe igennem en ControlCollection og sætte Visible = (index == ActivePageIndex)

Men øv. Når man sætter Visible = false på fx en TextBox, forsvinder dens viewstate!? I hvert fald er feltet tomt når jeg vender tilbage til siden... :(

Findes der en anden variant en Visible = false, som udelukkende standser renderingen af kontrollen, uden at dræbe dennes viewstate?
Avatar billede madrich Nybegynder
26. september 2005 - 10:03 #1
textboxobj.Attributes.Add("display","none");
Avatar billede davidfossil Nybegynder
26. september 2005 - 10:24 #2
Jeg går ud fra at du ville skrive:
textboxobj.Style.Attributes.Add("display","none");

Tillader mig at afvise svaret, selvom jeg måske ikke fik udtrykt mig klart nok i mit spørgsmål. Jeg ønsker naturligvis at skjule kontrollen serverside, således at den slet ikke renderes til HTML.
Avatar billede snepnet Nybegynder
26. september 2005 - 11:11 #3
hej david :o)

Du kan skrive til dit viewstate direkte - på samme måde som du skriver til Session (Viewstate["somename"] = "godmorgen";), og self. hente igen.

Men bortset fra det - så skulle du sådan set have et viewstate på din textbox - prøv evt. følgende eksempel:

// i aspx'en
<asp:TextBox ID="TextBox1" runat="server" Visible="false"></asp:TextBox></div>
<asp:Button ID="Button1" runat="server" Text="Button" />

// og i koden
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        this.TextBox1.Text = "test";
    else
        Response.Write(TextBox1.Text);
}

Teksten sættes ved første kig, og efterfølgende udskrives indholdet af den, hvilket gerne skulle fungere.

Hvis du har et af de der værktøjer der kan vise dig indholdet af viewstate - burde du også kunne finde indholdet af tekstboksen der.

mvh
Avatar billede davidfossil Nybegynder
26. september 2005 - 11:40 #4
snep for satan - du har jo ret!
så er det nok (som altid) bare mig der er en klovn :) prøver lige at lokalisere problemet i min kode...
Avatar billede davidfossil Nybegynder
26. september 2005 - 13:29 #5
JUHUU! Jeg fik det til at virke nu. Delvis forklaring:

Den metode som skjuler/viser mine undersider, kaldte jeg i et override til Render() inden selve renderingen. Det var åbentbart ikke så smart, så nu har jeg flyttet metodekaldet til PreRender - og vupti!

snepnet > Smid et svar. Det var din kommentar ("Men bortset fra det...") der fik mig til, at skille det hele ad og finde kilden til problemet.
Avatar billede snepnet Nybegynder
26. september 2005 - 13:31 #6
alletiders - godt at det ruller :o)
held og lykke med resten.
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