23. november 2006 - 20:54Der 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.
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
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
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" %>
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.
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.
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
Oki, genstarter.... det havde jeg ikke lige forestillet mig det kunne være :) vil jeg lige søge lidt på.
Tak for hjælpen.
Synes godt om
Ny brugerNybegynder
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.