» »

[ASP.NET] Dostop do dinamično kreiranih kontrol

[ASP.NET] Dostop do dinamično kreiranih kontrol

N-E-O ::

Sledeč problem (asp.net, c#)

Na strani dinamično kreiram nekaj textboxov. Torej naredim for zanko v kateri kreiram nekaj TextBox objektov in vsakemu določim lasten ID. Po kliku na gumb skrijem Panel s kreiranimi textboxi in v prikažem drugi panel, v katerem želim pridobiti besedilo, ki se nahaja v vsakem od teh textboxov (torej textbox.Text).
Textboxe sem po kreiranju shranil v Session in jih po kliku na gumb dobil nazaj. Očitno pa je, da so textbox.Text stringi prazni. Kar je po svoje logično, ker sem textboxe shranil v Session, uporabnik pa je kasneje vnesel neki tekst.

Kako bi lahko torej prišel do besedil v textboxih?
S statično kreiranimi kontrolami je to zelo enostavno, z dinamičnim kreiranjem pa sem se prvič srečal (potrebujem ga, ker ne vem vnaprej potrebnega števila kontrol).

Hvala za predloge.
Follow the white rabbit.

DubleG ::

Če te razumem potem čisto enostavno, kliku na gumb dodaj event:

Button button = new Button();

string poslji = nova.Text + "||" + nova2.Text;
button.CommandArgument = poslji;
button.Click += new EventHandler(a_Click);



Event pa MORA izgledati tako(glede parametrov):
void a_Click(object sender, EventArgs e)
{
string b = ((Button)sender).CommandArgument;
}
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

N-E-O ::

string poslji = nova.Text + "||" + nova2.Text;


Ko se to izvede, je property Text še prazen string (če z objektom nova misliš textboxe).
Follow the white rabbit.

DubleG ::

Kako je prazen? Kaj pa potem prenašaš na drugi panel?
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

N-E-O ::

Problem je verjetno v tem, da textboxe shranim v Session še preden pridobijo lastnost .Text.
Zdaj poskušam malo kombiniranja z javascript - da bi se ob kliku na gumb nekako določila ta lastnost textboxu na klientovi strani nato pa na serverju dalje sprocesirala.
Follow the white rabbit.

KalEl ::

Poglej si malo življenski cikel strani. ti bodo prišle še kako prav. Drugače pa je v .NET-u pravilo SILVER-U (Start Initialize Load ViewState Events Render Unload) :)

Sem ti pripravil en primer, kako lahko npr. 2 textbox-a dinamično dodaš, skriješ panel in v drugem prikažeš vnešene vrednosti.

Povezava do primera.

Malo si poglej pa ti bo takoj jasno (pa debug-aj vmes pa boš videl, kaj se točno zgodi, v katerem trenutku) - naredil sem primer v VS 2010, upam, da to ni primer, lahko ti pa tudi posnamem primer, kako to deluje.

DubleG ::

Daj razloži to pravilo... Ga ne razumem čisto.
GA-P55M-UD2,i5,12GB RAM,Radeon HD 4850,Crucial SSD 64GB,
WD 320GB,WD 5000GB,RevoDrive X2 100GB

N-E-O ::

Hvala, si bom pogledal, ko bom imel čas.

Drugače pa sem zdaj že rešil problem na drugačen način. Po kliku na gumb se mi najprej proži javascript funkcija, ki mi v cookie shrani vrednosti in tako s pomočjo cookija dobim vrednosti na server side kodi. Kakorkoli, zadeva deluje.
Follow the white rabbit.

KalEl ::

DubleG je izjavil:

Daj razloži to pravilo... Ga ne razumem čisto.

Pravilo je, da si lahko z besedo SILVER-U na enostaven način zapomniš vrstni red glavnih event-ov, ki se zgodijo v ASP.NET procesu (vmes med temi eventi jih je še kar en kup).
Torej, ko začne izvajati stopnje na page-u, do mere, ko sproducira HTML, ki ga pljune ven klientu.
Lp,
B.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[ASP.NET] Prenos podatkov iz ene spletne strani v drugo

Oddelek: Programiranje
14912 (771) Cvenemir
»

C#, TextBox in PopUp forma

Oddelek: Programiranje
61084 (978) MarCar
»

C# iz form2 v form1,textboxi

Oddelek: Programiranje
131926 (1552) Keki
»

[ ASP.NET ] Vprašanje glede podajanja parametrov

Oddelek: Programiranje
151542 (1273) salesky
»

C#, Dodajanje podatkov v Arraylist z Gumbom

Oddelek: Programiranje
82255 (2094) Beezgetz

Več podobnih tem