[ mmelanny @ 09.02.2006. 16:30 ] @
Problem je sledeci....

Imam XML sa nekim parametrima koje ucitavam u dinamicke kontrole (one mogu biti text box-ovi, combo-box-ovi i slicno zavisno od tipa parametra). Korisnik moze da promeni vrednost tih parametara (svaki parametar ima ime i vrednost kao elemente u XML-u).
Kako tj. gde da pokupim te novoupisane vrednosti parametara klikom na neki button? Potrebno je te nove vrednosti zapamtiti i prikazati na strani....

btw. kontrole dinamicki dodajem u Page_Init...
[ kaan @ 11.02.2006. 17:04 ] @
Nisam bas razumio. Imas vec postojece kontrole na stranici cije parametre "bindas" iz XML-a ili imas XML i njega parsiras i dinamicki dodajes kontrole na stranicu?

[Ovu poruku je menjao kaan dana 11.02.2006. u 18:05 GMT+1]
[ mmelanny @ 11.02.2006. 17:28 ] @
Imam XML iz koga citam vrednosti nekih paramatera i na osnovu osnovu tipa dodajem dinamicki neke moje ascx kontrole. Korisnik moze da izmeni te vrednosti i ja treba da ih pokupim iz tih kontrola i zapamtim u taj isti XML....i da ih klikom na button tako izmenjene ponovo prikazem na stranici....
[ ntadic @ 13.02.2006. 10:30 ] @
Pa snimis xml na postback, i odmah ga ucitas, [ako sam dobro shvatio u cemu je problem], otprulike ovako:

page_load(...){
...
if(!IsPostBack){
loadXML();
}
...
}

button_click(...){
...
saveXML();
loadXML();
...
}

Fora je sto .NET svaki put pravi novu instancu klase Page, bio postback ili ne, a kad kliknes na dugme prvo se okida form_load, pa tek onda Button_click event. Zato ti je vjerovatno citao stare vrijednosti. Dakle samo treba da provjeris da li je postback, ako jeste onda ne citas XML na form load nego na Eventu (poslije snimanja)...
[ mmelanny @ 13.02.2006. 15:51 ] @
Probala sam i ovu varijantu, ali ne ide...Nije problem u tome sto ja citam stare vrednosti, vec sto ne mogu da procitam bilo kakve vrednosti iz tih dinamickih kontrola. Te moje kontrole se dinamicki dodaju na stranicu. I kad ja kliknem na button on kao sto kazes pokrene prvo Page_Init pa Page_Load pa tek onda event za button. Znaci prilikom tog ponovnog pokretanja stranice ja nemam nijednu od prethodno dodatih dinamickih kontrola cije vrednosti hocu da zapamtim....
[ ntadic @ 15.02.2006. 11:18 ] @
Pa onda pkusaj ovako:
Code:

HtmlInputText[] kontrole;
            for (int i = 0; i < Request.Form.Keys.Count; i++)
            {
                if(((object)Request.Form[i]).GetType().ToString() == "System.Web.UI.HtmlControls.HtmlInputText")
                {
                    kontrole[i] = (HtmlInputText) Request.Form[i];
                    switch(kontrole[i].ClientID)
                    {
                        case "Mojtextbox":
                            //uzmi vrijednost iz kontrole[i].Value.ToString();
                            
                            break;
                    }
                }
            }



Znachi "Form" kolekcija bi trebala da bude forma koja je sabmitovana, tu su svi elementi, zato kroz ovaj for uzmes samo textBox-ove.
Ako ovo radis u nekoj klasi, a ne u CodeBehinde-u onda ti je trenutna forma u System.Web.HttpContext.Current.Request.

P.S. primjer sam ispisao iz glave, tako da vjerovatno ima sintaxnih gresaka, ali uglavnom shvatas sta sam htio reci...
[ mmelanny @ 20.02.2006. 11:04 ] @
Ok...to je to...thanks...

E sad, postoji tu jos jedan problemcic....na stranici mogu imati vise istanci moje user control-e...na primer, imam TextControl.ascx koja sadrzi text box i labelu (vrednost i ime parametra). Pomocu Request.Form ja iscitam vrednost text polja ali ne i labele, a to mi je potrebno da bih znala koji parametar u xml treba da update-ujem...
[ mmelanny @ 20.02.2006. 16:13 ] @
Resila sam ovo tako sto ne koristim labelu vec jos jedan textbox koji je readonly...Pa zatim kada iz Reguest.Form pronadjem key koji sadrzi txtName onda odmah procitam vrednost za sledeci key u kome je txtValue (koliko vidim key kontrola iz iste dinamicke kontrole idu redom, mislim da nema potrebe da ispitujem da li im key sadrzi isti string koji oznacava redni broj kontrole u holder-u?)....nekako mi je ovo glupavo resenje...ima li neko bolje?
[ ntadic @ 25.02.2006. 15:41 ] @
Mozda je bolje rjesenje da radis standardno iz koda, a ne iz XML-a

Zezam se sto radi poso ne treba mijenjati...
[ mmelanny @ 28.02.2006. 10:26 ] @
Pa radi posao, ali...

Ima tu par stvari koje nisam razjasnila do kraja (iz tvog primera)...Recimo, ((object)Request.Form).GetType() je kod mene System.String za sve Request.Form.Keys. Tako da nisam ni mogla da iscitam ClientID kontrola nego samo da u key(koji odgovara UniqueID kontrole) pronadjem ime kontrole i da tako citam vrednosti. Pitanje je znaci kako da i da li uopste mogu da procitam ClientID kontrole iz Request.Form...



[Ovu poruku je menjao mmelanny dana 28.02.2006. u 11:29 GMT+1]
[ ntadic @ 28.02.2006. 14:30 ] @
probaj sa kolekcijom kontrola strane (naravno, samo ako si kontrole dodala u kolekciju this.Controls)

this.Controls[1].Controls[ i ]

(umjesto this.Controls[1] pokusaj staviti this.Controls["Form1"], tako ces da dobijes kolekciju kontrola forme)

[Ovu poruku je menjao ntadic dana 28.02.2006. u 15:31 GMT+1]