Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 18:02 Der er 18 kommentarer og
1 løsning

Hente værdier ud fra PlaceHolder

Har lavet en placeholder der dynamisk laver en Table... Denne indeholder en eller flere TextBox'er, som jeg ønsker at tilgå!

Jeg ønsker at hente ud det antal TextBox'er OG den tekstværdi disse indeholder!
Avatar billede dr_chaos Nybegynder
18. februar 2007 - 18:23 #1
int i =0;
ForEach (Control C in dinplaceholder.Controls)
{
if(C.GetType()==TextBox)
{
i++;
string textboxvalue= ((TextBox)C).Text;
}
}
Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 18:32 #2
for følgende errorbesked:

'System.Web.UI.WebControls.TextBox' is a 'type' but is used like a 'variable'

for følgende kode:

if(c.GetType()==TextBox)
Avatar billede dr_chaos Nybegynder
18. februar 2007 - 18:58 #3
if(C.GetType()==TextBox.GetType())
Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 19:27 #4
TextBox har ikke den metoden hos mig... (Kun Equals og ReferenceEquals) Er det fordi min codebehindfil er C#?!

(burde måske have postet denne under C# og ikke ASP.NET)
Avatar billede dr_chaos Nybegynder
18. februar 2007 - 19:39 #5
nej det er bare fordi jeg ikke har vs 2005 her.
if(C.GetType()==typeof(TextBox))
Avatar billede snepnet Nybegynder
18. februar 2007 - 20:06 #6
Jeg synes du skal benytte is eller as:

// is
if(c is TextBox)
{
  // safe typecast her
}

// as

TextBox tb = c as TextBox;
if(tb != null)
{
  // tilgå tb her
}

Mvh
Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 20:10 #7
ja... den er nok nemmere end den jeg fandt også:

if ((ctrl.GetType()).ToString() == "TextBox")

...men nu der kommet et nyt problem, nemlig at den siger min PlaceHolder ikke indeholder nogle Controls, men jeg kan jo godt se de TextBox'es på hjemmesiden, så selve opbygningen af PlaceHolderen kan der jo ikke være noget fejl med!
Avatar billede dr_chaos Nybegynder
18. februar 2007 - 20:14 #8
Så har du formodentlig en tabel eller lignende i din placeholder.
Eller også skal du generer dine kontroller igen,
Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 20:33 #9
jeg har en anden placeholder der er lavet PRECIS på samme måde, og der kan den godt finde ud af det... Det eneste de er forskel er at den tomme placeholder oprettes af et knappetryk i stedet for under Page_Load
Avatar billede snepnet Nybegynder
18. februar 2007 - 20:38 #10
Hvordan tilføjer du dem til placeholderen... og hvornår (i forhold til den kode du har vist)?
Mvh
Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 20:56 #11
Alt ligger i forskellige metoder...

protected void FlereNavn_Click(object sender, EventArgs e)
{
Table nyeNavn = new Table();
nyeNavn.Rows.Add(NewTextBoxRow(300));
flereNavn.Controls.Add(nyeNavn);
}

private TableRow NewTextBoxRow(int width)
{
TableRow row = new TableRow();
TableCell cell = new TableCell();
TextBox box = new TextBox();
box.Width = width;
cell.Controls.Add(box);
row.Cells.Add(cell);
return row;
}

protected void Update_Click(object sender, EventArgs e)
{
foreach (Control c in flereNavn.Controls)
{
...etc...
Avatar billede snepnet Nybegynder
18. februar 2007 - 21:39 #12
Well... Du får jo kun sat rækken ind når der klikkes på knappen så - så kommer du jo aldrig til at se mere end én (som så vil forsvinde ved næste postback)... Er det meningen?

Når du lægger dem ind i en tabel på den måde - er det nok det nemmeste, hvis du bare lægger dem i en "huskeliste" også, når du lægger dem ind i tabellen.

Mvh
Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 21:58 #13
vel... textboxen skal kun være der indtil man trykker på en update knapp (hvor værdien fra Textboxen hentes ud og behandles)... Hvordan kan jeg løse det så??

har i og for sig kun lagt dem ind i en tabel fordi jeg gjorde det i det andet sted (hvor der fagtisk er en stor tabel) - og den virkede der... men behøver jo sådan set ikke at lave en hel tabel (men det har jo heller ikke så meget at si for mit problem)
Avatar billede baddaydaddy Nybegynder
18. februar 2007 - 22:23 #14
Findes der måske en anden måde at lave det samme som jeg ønsker at gøre med PlaceHolderen??
Det hele er en slags form, hvor man indtaster personopplysninger, og hvor der med de samme kontaktoplysninger kan tilføjes flere navne ved at der tilføjes et antal TextBoxes...
Avatar billede snepnet Nybegynder
18. februar 2007 - 22:51 #15
Hmm... Når du trykker på update knappen (som jeg går ud fra er en anden knap end FlereNavn-knappen) vil der jo ikke blive trykket på FlereNavn-knappen, hvorved din tekstboks slet ikke vil blive sat ind... Og så vil du heller ikke kunne få værdien fra den.
Ja - der findes andre måder... Et en hurtig løsning kunne være noget som det her:
http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx
Men du kan self. løse det uden...
Mvh
Avatar billede baddaydaddy Nybegynder
22. februar 2007 - 15:38 #16
droppet hele codebehind-file og laved det hele i lorte-html (aspx) i stedet for...
Avatar billede baddaydaddy Nybegynder
23. januar 2009 - 15:46 #17
Har stadig nogle points ude her, så smid lige et svar den der ønsker dem...
Avatar billede baddaydaddy Nybegynder
29. januar 2009 - 09:01 #18
hvis der ikke er nogen der kræver de udestående points tager jeg dem i retur...
Avatar billede baddaydaddy Nybegynder
03. februar 2009 - 12:51 #19
svar
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