Hvad gør man nemmest hvis man har 5 ens dynamisk kontroller?
Jeg er ved at lave 5 Dropdownlister som skal adderes til en form dynamisk med placeholder.Jeg vil gerne høre om det er muligt at lave et array med typen DropDownlist eller moske en collection, får så kan jeg jo bare lave en while lykke og itterere igennem arrayet istedet for det jeg har lavet nedenfor.
# code start
if (numberOfFeatures > 0)
{
DropDownList lstFeatureList1 = new DropDownList();
lstFeatureList1.Height = 20;
lstFeatureList1.Width = 200;
lstFeatureList1.Style.Add("top", "230px");
lstFeatureList1.Style.Add("left", "130px");
lstFeatureList1.Style.Add("position", "absolute");
lstFeatureList1.DataSource = features;
lstFeatureList1.DataBind();
plhFeatureHolder.Controls.Add(lstFeatureList1);
}
if (numberOfFeatures > 1)
{
DropDownList lstFeatureList2 = new DropDownList();
lstFeatureList2.Height = 20;
lstFeatureList2.Width = 200;
lstFeatureList2.Style.Add("top", "260px");
lstFeatureList2.Style.Add("left", "130px");
lstFeatureList2.Style.Add("position", "absolute");
lstFeatureList2.DataSource = features;
lstFeatureList2.DataBind();
plhFeatureHolder.Controls.Add(lstFeatureList2);
}
if (numberOfFeatures > 2)
{
DropDownList lstFeatureList3 = new DropDownList();
lstFeatureList3.Height = 20;
lstFeatureList3.Width = 200;
lstFeatureList3.Style.Add("top", "290px");
lstFeatureList3.Style.Add("left", "130px");
lstFeatureList3.Style.Add("position", "absolute");
lstFeatureList3.DataSource = features;
lstFeatureList3.DataBind();
plhFeatureHolder.Controls.Add(lstFeatureList3);
}
if (numberOfFeatures > 3)
{
DropDownList lstFeatureList4 = new DropDownList();
lstFeatureList4.Height = 20;
lstFeatureList4.Width = 200;
lstFeatureList4.Style.Add("top", "320px");
lstFeatureList4.Style.Add("left", "130px");
lstFeatureList4.Style.Add("position", "absolute");
lstFeatureList4.DataSource = features;
lstFeatureList4.DataBind();
plhFeatureHolder.Controls.Add(lstFeatureList4);
}
if (numberOfFeatures > 4)
{
DropDownList lstFeatureList5 = new DropDownList();
lstFeatureList5.Height = 20;
lstFeatureList5.Width = 200;
lstFeatureList5.Style.Add("top", "350px");
lstFeatureList5.Style.Add("left", "130px");
lstFeatureList5.Style.Add("position", "absolute");
lstFeatureList5.DataSource = features;
lstFeatureList5.DataBind();
plhFeatureHolder.Controls.Add(lstFeatureList5);
}
# code slut
Jeg har fået foreslået følgende :
# code start
for (int i=0; i<numberOfFeatures; i++)
{
DropDownList lstFeatureList = new DropDownList();
lstFeatureList1.Height = 20;
lstFeatureList1.Width = 200;
lstFeatureList1.Style.Add("top", (230+i*30).ToString() + "px");
lstFeatureList1.Style.Add("left", "130px");
lstFeatureList1.Style.Add("position", "absolute");
lstFeatureList1.DataSource = features;
lstFeatureList1.DataBind();
plhFeatureHolder.Controls.Add(lstFeatureList);
}
# code slut
Og det er også nogen lunde det jeg vil lave men jeg har brug
for en måde hvorpå jeg kan skelne mellem de 5 kontroller
og i ovenstående eksempel vil navnet på alle kontroller være ens.
Hvis man nu kunne arrangere controllerne i et array eller en collection så kunne man jo ittere og bruge et index til at få fat i den ønskede kontrol.
Kan det gøres smartere end ovenstående?
