Avatar billede dcasso Nybegynder
23. november 2006 - 20:54 Der er 11 kommentarer og
1 løsning

Dynamisk indsættelse af kontroller

Hejsa

Har to spørgsmål, som jeg håber, der sidder en eller flere der kan hjælpe med.

1) Hvilken type kontrol skal man bruge for at kunne tilføje en <input type=hidden> i html'en. Har prøvet med:
    txtTextBox = New TextBox
    txtTextBox.ID = "txtAttribut" & strFieldNum
    txtTextBox.Text = attributVaerdi
    txtTextBox.Visible = False
    phAttributter.Controls.Add(txtTextBox)
det fungerer ikke, idet den slet ikke indsættes. Har prøvet lidt forskelligt, men har ikke fundet en løsning.

2) Har en knap som brugeren trykker på, hvormed der kommer et ekstra tekstfelt frem. Brugeren kan indsætte ligeså mange som brugeren har behov for. På et tidspunkt skal brugeren dog gemme felterne, hvorefter at felterne skal fjernes igen. Mit problem er, at felterne ikke fjernes ved første klik på knappen men først det andet tryk, nogle forslag?

I form_load står der:
    If Not IsPostBack Then
      ViewState("AttributAntal") = 0
    ElseIf ViewState("AttributAntal") > 0 Then
      For intCounter = 1 To ViewState("AttributAntal")
        tilfoejEkstraAttribut(intCounter)
      Next
    End If

På knappen står der

  Protected Sub btnNy_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
    fjernAttributter()
    ViewState("AttributAntal") = 0
  End Sub

Fjernattributter indeholder:
    Dim i As Int16
    For i = ViewState("AttributAntal") - 1 To 0 Step -1
      phAttributter.Controls.RemoveAt(i)
    Next


FjernAttributter var et forsøg på at få felterne væk, men virker heller ikke optimalt.

Håber på lidt hjælp
Dennis
Avatar billede snepnet Nybegynder
23. november 2006 - 22:00 #1
Du kan bruge et HiddenField (ligger i System.Web.UI.WebControls).
Mht til dit andet spørgsmål - så kan du vel lave en phAttributter.Controls.Clear();
Mvh
Avatar billede dcasso Nybegynder
24. november 2006 - 07:29 #2
Hejsa

Har prøvet med hiddenfield, det gav intet resultat (kom intet ud i html-koden) og kunne ikke læse værdien efterfølgende.

Til det andet spørgsmål: Dooh, ved ikke lige om jeg sov i timen :)
Avatar billede snepnet Nybegynder
24. november 2006 - 10:27 #3
Et HiddenField er bare en kontrol som alle andre, og den renderes som:
<input type="hidden" name="etellerandet" />
Det er noget andet i dit scenarie der kikser ... Du kan evt. vise mig hele koden der driller.
Mvh
Avatar billede dcasso Nybegynder
25. november 2006 - 23:06 #4
Prøvede igen med hiddenfield, men har åbenbart ikke fået sat det korrekt op (synes bare jeg havde afprøvet det før).

Jeg får at vide, at  BC30002: Type 'HiddenField' is not defined.

Koden er som følger:
    Dim hfid As HiddenField
    hfid = New HiddenField
    hfId.ID = "hfId" & strFieldNum
    phAttributter.Controls.Add(hfId)

Har indsat følgende i toppen af filen (bare for at være på den sikre side):
<%@ Assembly Name="System.Web" %>
<%@ Import Namespace="System.Web.UI.WebControls" %>

Har du et forslag?
Avatar billede snepnet Nybegynder
26. november 2006 - 08:49 #5
Prøv at skriv den fuldt ud ... Bare for en test:
System.Web.UI.WebControls.HiddenField
Mvh
Avatar billede dcasso Nybegynder
26. november 2006 - 09:41 #6
Det fungerede ikke.

Prøvede det af på en anden webserver for at se om det var min lokale det var galt med, men der fungerer det heller ikke.

Prøvede så at udkommentere linierne og så indsætte et hiddenfield som kontrol i koden, og fik en lidt anderledes fejlbesked, som jeg vil til at tygge på:

Could not load type System.Web.UI.WebControls.HiddenField from assembly System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
Avatar billede dcasso Nybegynder
26. november 2006 - 09:58 #7
Da Hiddenfield er et kontrol tilhørende version 2, så må den tro at jeg kører version 1. Så kiggede nærmere på det (jeg ved jeg har installeret version 2 :)) men den skriver følgende om platformen:
Version Information: Microsoft .NET Framework Version:1.1.4322.2032; ASP.NET Version:1.1.4322.2032

Og det er vel reelt set kun version 1.1, hvilket gør at den ikke kan bruge HiddenField.

Er der så et alternativ man kan benytte, for har brug for funktionen og de tre webservere jeg nu har fået den testet af på, opfylder åbenbart ikke kravene for at bruge kontrollen.
Avatar billede dcasso Nybegynder
26. november 2006 - 10:08 #8
Så virker det lokalt, havde åbenbart kun installeret version 2, men ikke sat iis op til det (ik så fikst).

Problemet er dog at scriptet skal kunne køre på en version 1.1, så.... nogle forslag?
Avatar billede snepnet Nybegynder
26. november 2006 - 12:06 #9
System.Web.UI.HtmlControls.HtmlInputHidden
Men altså  ... Du kan bare bruge ViewState, hvis du alligevel ikke har slået det fra.
Mvh
Avatar billede dcasso Nybegynder
26. november 2006 - 17:09 #10
Tak for hjælpen, du må jo sige til hvis du vil have nogle point :)

Så vil jeg lige oprette et nyt spørgsmål om sessioner, fordi jeg er ude for at de hele tiden "falder ud" og forstår ikke at de fungerer så ustabilt.
Avatar billede snepnet Nybegynder
26. november 2006 - 19:31 #11
Du får et svar her. Din session dør før tid hvis din applikation genstarter, hvilket den kan gøre af flere årsager.
Du kan kigge her, hvis du vil prøve at finde ud af om det er derfor den dør.
Mvh
Avatar billede dcasso Nybegynder
26. november 2006 - 22:01 #12
Oki, genstarter.... det havde jeg ikke lige forestillet mig det kunne være :) vil jeg lige søge lidt på.

Tak for hjælpen.
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