[ kopca @ 02.09.2005. 08:00 ] @
Imam text box I_Cena u polju tabele HTML a i preko DOMa ne mogu da pristupim vrednosti koja je ispisana u njemu:
Code:
I_Kolicina.Attributes.Add("onblur", "PreracunajVrsticu(this,document.all.I_Cena," + odstotekPop + ", document.getElementById('I_Vrednost'),document.getElementById('I_OdstotekRabata'),"  + vrednostRabata + "," + tipArtikla + ")");

To je kod iz ASP.NET aspx.cs fajla, a text box u html-u je u tabeli:
Code:
<TD><asp:textbox id="I_Cena" style="TEXT-ALIGN: right" runat="server" Width="100px" Columns="3"
                            MaxLength="35" AutoPostBack="True"></asp:textbox></TD>


Pomagajte, ljudi, da se iscupa vrednost iz text box-a!!!

[Ovu poruku je menjao kopca dana 02.09.2005. u 09:03 GMT+1]
[ kopca @ 02.09.2005. 08:08 ] @
Ne znam, da li treba da se prodje po DOM-u preko tabele, ako treba, opet ne znam kako...
[ jablan @ 02.09.2005. 08:29 ] @
Ovo si pitanje trebao u .NET forum.

ID-jevi koje ASP kontrole dobijaju u finalnom HTMLu razlikuju se od njihovih originalnih IDjeva (zbog toga što ti možeš na veb formu staviti tri iste web user kontrole od kojih svaka sadrži npr. TextBox1, jasno ti je da nije pametno od toga praviti HTML koji ima tri tekst polja sa istim IDjem).

Koristi polje ClientID, ono sadrži konačni HTML ID kontrole. Znači nešto na foru:
Code:
document.all.<%=I_Cena.ClientID%>


[Ovu poruku je menjao jablan dana 02.09.2005. u 09:30 GMT+1]
[ kopca @ 02.09.2005. 08:39 ] @
Ako taj textbox u finalnom HTMLu postaje <input>, zar nije logicno da po DOMu dodjem do inputa pa citam text? Ali, kako to da uradim?
[ jablan @ 02.09.2005. 08:45 ] @
Kakve veze ima da li je tekst boks u tabeli ili nije? Do njega u DOMu možeš doći na više načina, pogledaj malo reference za DOM. Ja sam ti rekao kako da dođeš do ID-ja tog tekst boksa. U javascriptu posle možeš koristiti taj ID da dobiješ sam element, a ako imaš posebnu želju, možeš ga tražiti i kroz DOM stablo.
[ kopca @ 02.09.2005. 09:52 ] @
Resenje je da na serverskoj strani ASP napravi kod koji ce napraviti u HTMLu poziv Javscript funkcije. Na serverskoj strani se pise string kao poziv te funkcije sa parametrom imetextboxa.ClientID + "_imeTextBoxa". U zavisnosti od kontejnera (da li je u user kontroli ili ne, a ovde jeste bio slucaj) u krajnjem HTMLu se toj kontroli pristupa kao imekontejnera_imeTextboxa.
Dalje, JavaScript u funkciji prepoznaje kontrolu preko tog opisanog parametra prm1 kao document.all[prm1]. Hvala na pomoci, ClientID je pomogao...
[ kopca @ 02.09.2005. 09:57 ] @
Znaci, za JS

document.all['imekontejnera_imekontejnera1_imetextboxa'].value,

a string

'imekontejnera_imekontejnera1_imetextboxa'

se u ASPu dobija sa

imetextboxa.ClientID + "_imetextboxa"
[ noviKorisnik @ 02.09.2005. 11:08 ] @
Ako je već neka JS DOM priča, nije li bolje umesto all kolekcije koristiti dokument interfejs i metodu getElementById?
[ kopca @ 02.09.2005. 12:49 ] @
Verovatno jeste.