Avatar billede shosho500 Nybegynder
11. juni 2007 - 16:23 Der er 3 kommentarer og
1 løsning

Dynamically create controls from properties?

Hej

Jeg er ved at lave en usercontrol, hvor der skal være muligt, at føde den med nogle forskellige properties og ud fra dem, skal den så genererer noget kode.

Jeg har fået lavet det meste på den, men mangler lige det sidste og det kan jeg ikke helt få til at spille :( så håber der er nogen der gider at hjælpe...

Jeg har en property der hedder NumberOfProducts. Hvis man fx sætter den til 5, så skal den dynamisk generere 5 radiobuttons. Detil er der en property der hedder titles, som er et string[], dette string[] er det tekst, der skal stå ved de forskellige radiobuttons, jeg forestiller mig, at det skal være html radiobuttons og ikke .net kontrollerne, da jeg kan sætte en value på de almindelige, deraf skal der nok også være en property, som er et string[] bestående af de forskellige values..

Nogen der kan hjælpe mig lidt på vej ?
Avatar billede shosho500 Nybegynder
11. juni 2007 - 16:28 #1
Har dette indtil videre, dog virker det ikke, men jeg prøver da :)

private int FNumberOfProducts;
private string FRequestName;
Private string[] FTitles;
private string[] FValues;

public int NumberOfProducts {
get { return FNumberOfProducts; }
set { FNumberOfProducts = value; }
}

public string RequestName {
get { return FRequestName; }
set { FRequestName = value; }
}

public string[] Titles {
get { return FTitles; }
set { FTitles = value; }
}

public string[] Values {
get { return FValues; }
set { FValues = value; }
}

public ArrayList GenerateItems() {
ArrayList OList = new ArrayList();
if (NumberOfProducts > 0) {
  for (int i = 0; i < NumberOfProducts; i++) {
  foreach (string OValue in Values) {
    HtmlInputRadioButton OControl = new HtmlInputRadioButton();
    OControl.ID = "Radio" + i;
    OControl.Value = OValue;
    OControl.Name = RequestName;
    OList.Add(OControl);
  }
  }
}
return OList;
}

Og så er der lige et problem mere.. Hvordan får jeg sat teksten til hver af de radiobuttons ? det er jo ikke helt muligt når det er html kontrollerne jeg bruger..
Avatar billede shosho500 Nybegynder
11. juni 2007 - 16:29 #2
protected override void OnInit(EventArgs e) {
foreach (object OObject in GenerateItems()) {
  ItemsPanel.Controls.Add((HtmlInputRadioButton)OObject);
}
}
Avatar billede shosho500 Nybegynder
11. juni 2007 - 16:42 #3
lukker
Avatar billede neoman Novice
11. juni 2007 - 16:46 #4
Jeg har siddet og bakset med en RadioButtonList, og kan anbefale dig følgende:

Et eller andet sted lav en Asp RadioButtonList med 2-3 dummy poster i. Kør koden, og så kig på sourcen i din browser. Så kan du se hvordan listen er blevet rendered som HTML <input .. blabla>, samt hvordan de tilknyttede labels hænger sammen med de radio buttons :) Det burde lede dig hen på den rette sti.
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