Forum » Programiranje » Dinamično dodajanje kontrol na panel ob kliku na gumb v ASP.NET
Dinamično dodajanje kontrol na panel ob kliku na gumb v ASP.NET
brinovcek ::
Hej, imam problem pri katerem ne morem rešiti uganke dinamičnega dodajanja dropdown listov na panel v asp.net aplikaciji. Ko pidem do neke doloćene funkcionalnosti, z gumbom želim potrditi neko izbiro in se naj bi nato na vmesnik pojavil dropdown list z neki izbirami. Ko uporabnik izbere pravilen odgovor se po potrditvi gumba na zaslonu pod dropdown list pojavi nov kontrolnik in stvar se ponavlja vse dokler ne pridemo do nekega končnega koraka. Gre pa nek spletni kviz.
Moja funkcija za generiranje spustnega seznama:
...
private void naloziKontrolo()
{
if (Session["korak"] == null)
Session["korak"] = 1;
/*inicializiramo novo kontrolo */
downList = new DropDownList();
downList.ID = Session["korak"].ToString();
/*Oznaka*/
Label label = new Label();
label.ID = Session["korak"].ToString() + ".korak";
label.Text = label.ID.ToString() + ": ";
/* oblika okvirja*/
label.BorderColor = Color.Black;
label.BorderStyle = BorderStyle.Solid;
label.BorderWidth = 1;
/* dodamo na panel */
Panel2.Controls.Add(downList);
//povečamo števec korakov
Session["korak"] =((int.Parse(Session["korak"].ToString()))+1).ToString();
}
/* gumb za potrditev izbire ki ga uporabljam za prožitev funkcije naloziKontrolo()*/
protected void Button3_Click(object sender, EventArgs e)
{
// Button3.Text = ViewState["korak"].ToString();
if (Session["korak"]==null)
{
Session["korak"] = 1;
}
naloziKorak();
}
Funkcija mi naredi naslednje: na vmesniku mi pokaže dropdown list in label, ki izpiše korak, vendar se nato samo spreminja tekst labla, kar pani v redu ...
Trenutni izgled vmesnika z zgornjo funkcijo:
Na sliki se lepo vidi da je korak št 9, kar pomeni, da bi moglo biti na zaslonu 9 labels in dropdown listov.
Željeni končni produkt:
Koraki se generirajo glede na začetne podatke.
Prosim če mi zna kdo pomagat.
Moja funkcija za generiranje spustnega seznama:
...
private void naloziKontrolo()
{
if (Session["korak"] == null)
Session["korak"] = 1;
/*inicializiramo novo kontrolo */
downList = new DropDownList();
downList.ID = Session["korak"].ToString();
/*Oznaka*/
Label label = new Label();
label.ID = Session["korak"].ToString() + ".korak";
label.Text = label.ID.ToString() + ": ";
/* oblika okvirja*/
label.BorderColor = Color.Black;
label.BorderStyle = BorderStyle.Solid;
label.BorderWidth = 1;
/* dodamo na panel */
Panel2.Controls.Add(downList);
//povečamo števec korakov
Session["korak"] =((int.Parse(Session["korak"].ToString()))+1).ToString();
}
/* gumb za potrditev izbire ki ga uporabljam za prožitev funkcije naloziKontrolo()*/
protected void Button3_Click(object sender, EventArgs e)
{
// Button3.Text = ViewState["korak"].ToString();
if (Session["korak"]==null)
{
Session["korak"] = 1;
}
naloziKorak();
}
Funkcija mi naredi naslednje: na vmesniku mi pokaže dropdown list in label, ki izpiše korak, vendar se nato samo spreminja tekst labla, kar pani v redu ...
Trenutni izgled vmesnika z zgornjo funkcijo:
Na sliki se lepo vidi da je korak št 9, kar pomeni, da bi moglo biti na zaslonu 9 labels in dropdown listov.
Željeni končni produkt:
Koraki se generirajo glede na začetne podatke.
Prosim če mi zna kdo pomagat.
LeQuack ::
Objekt downList je nekje definiran, tako da vse kar narediš ti je, da narediš novo instanco, še vedno pa se sklicuješ na en objekt. Bolj pravilno bi bilo:
Seveda moraš nekje najbrž tudi definirati, kje bo ta dropdown pozicioniran na panelu.
DropDownList downListNew = new DropDownList();
Seveda moraš nekje najbrž tudi definirati, kje bo ta dropdown pozicioniran na panelu.
Quack !
Zgodovina sprememb…
- spremenil: LeQuack ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | ASP.NET (C#) - PomočOddelek: Izdelava spletišč | 1118 (895) | Denisj |
» | Baza & c#Oddelek: Programiranje | 4153 (3211) | xardas |
» | Dropdown list vrača izbrano vrednost nullOddelek: Programiranje | 918 (810) | brinovcek |
» | [ ASP.NET ] Vprašanje glede podajanja parametrovOddelek: Programiranje | 1562 (1293) | salesky |
» | [ASP.NET] problemOddelek: Izdelava spletišč | 2165 (1815) | Microsoft |