Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 22 odgovora
  • 6.441 pregleda

Najnovija ↓

Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 14:51 · pre 199 meseci #1
Pozdrav.
Koristim Framework 3.5.
Server automatski dodeljuje serverskim kontrolama prefiks u njihovim ID-evima (ctl00_TheContent_ucGL...........).
Da li postoji mogucnost da se u code behind-u sazna za taj prefix, jer imam potrebu da kreiram dinamicki java script koji ce na klijentskoj strani da
pristupa kontrolama. Kontrole mi se nalaze u user kontroli ciji se naziv takodje nalazi u glupom prefiksu koji je dodat i taj naziv moze da varira, tako da nikako ne smem da zakucavam
prefiks kontrola u JavaScriptu.

Zna li neko resenje ovog problema, koje je fleksibilno i koje ce dozvoliti da user controlu koristim gde god hocu.
Najbolje bi bilo kad bi postojala metoda na serveru koja bi mi vratila taj prefix.
Potpis
Samo jeda i sekiracije!!!
Re: Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 15:06 · pre 199 meseci #2
Ja sam u slucaju jQuery-a koristio ovaj code, nisam siguran da li radi u code-behinde.

Code (csharp):

    IDControle.ClientID;
 
Re: Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 15:22 · pre 199 meseci #3
Postoji ClientID za sve kontrole u code behind-u, ali i pored toga mi ispisuje ID koji je dodeljen na serverskoj strani.

Primer :

Code behind :


btAddNew.OnClientClick = "return SelectItem(" + index + ",'"+((TextBox)guest.ControlList[3]).ClientID + "');";

Client side :

function SelectItem(index,cl) {

alert(cl);
return false;
}


Ovaj alert mi alertuje ID kontrole bez dodatih prefiksa :(
Potpis
Samo jeda i sekiracije!!!
Re: Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 15:40 · pre 199 meseci #4
Ne verujem da ces automatski saznati taj prefiks , jer ga asp dodeljuje na osnovu layouta strane ,
sto ce reci u zavisnosti od hijerarhije tih kontrola unutar jedne aspx strane ili ascx kontrole .
Tako da kontrola sa prefiksom ctl00_imekontrole je recimo prva na aspx strani , neka kontrola unutar nje bi bila ctl00_01_ .itd
Potpis
Viva lollapalooza
Re: Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 15:49 · pre 199 meseci #5
Ako je tako onda je mogucnost klijentskog programiranja svedena na minimum. Mora da postoji neko resenje.
Potpis
Samo jeda i sekiracije!!!
Re: Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 16:48 · pre 199 meseci #6
Sta ti je guest? I zasto vuces kontrolu iz ControlList?

Da bi ClientID funkcionisao, u trenutku kad vuces property taj element mora da bude u Controls hijerarhiji stranice (Dakle, u page.Control, ili u foreach (control in Page.Controls) => Controls ili za svaku od tih kontrola u njegovom Controls itd, sto dublje ides, duze je ClientID ime. Ako kontrole drzis u nekom svom collectionu koji jos nije ni povezan za hijerarhiju strnice onda ni CLientID ne moze da se zna.

Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 22:40 · pre 199 meseci #7
Guest mi je klasa koja u sebi sadrzi niz kontrola.
Broj tih Guest-ova mi zavisi od podataka iz baze.
Instanca te klase se koristi u user kontroli. User kontrola mi prikazuje te guestove sa kontrolama na koje oni referenciraju.
Kada kliknem negde, hocu da, preko javascripta, pristupim odredjenoj kontroli (sada na klijentu). Generisanje poziva tog javascripta mogu jedino da radim u user controli,
jer mi user kontrola sadrzi metodu za generisanje dinamickog HTML-a (i javascript poziva funkcija) koji predstavlja niz tih Guestova.



Potpis
Samo jeda i sekiracije!!!
Re: Automatski dodeljeni prefiksi kontrolama. 08.06.2010. u 22:56 · pre 199 meseci #8
kako se renderuje guest?

deluje mi da si mnogo zakomplikovao sve ovo i da si to mogao i mnogo jednostavnije da odradis.

Pazi ovako, ako te kontrole nisu direktno u hijerarhiji server-side page objekta (kroz Controls kolekcije) onda neces dobiti jedinstven ClientID. Jednostavno akd ti pozoves ((TextBox)guest.ControlList[3]).ClientID taj textbox nema svog parenta, samim tim server side kod ne zna GDE se kontrola nalazi niti kako da je jedinstveno imenuje pa ti vraca samo ID kontrole bez prefixa.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Automatski dodeljeni prefiksi kontrolama. 09.06.2010. u 09:50 · pre 199 meseci #9
Prica je sledeca :

1.User kontrola ima objekat klase koji mi se puni podacima iz baze podataka. Instanca tog objekta se cuva u sesiji da ga ne bih punio svaki put kad dodje do postBack-a.
2.User kontrola ima i metodu koja , na osnovu tog objekta (sada u sesiji), generise HTML tabelu sa kontrolama. Ta HTML tabela se posle dodeljuje nekom Panelu.
3.Da bi server video serverske event-e koji su prouzrokovani dinamicki generisanim kontrolama(u tacki 2.) ja moram da pozovem metodu za generisanje HTML tabele svaki put kad dodje do PostBack-a.
Pozivao sam je na Load event user kontrole. Pokusao sam i druge varijante : Init,na page stranici ...

Taj HTML jednostavno mora da se dinamicki kreira zbog slozenosti i zavisnosti od baze.

Potpis
Samo jeda i sekiracije!!!
Re: Automatski dodeljeni prefiksi kontrolama. 09.06.2010. u 10:12 · pre 199 meseci #10
Zbog ovog u tacki 2 ne mozes da dobijes realan ID. Sta vise imas konkretan rizik da vise elemenata ima isti ID sto ti iskljucuje mogucnost da jednoznacno lociras element.


Ja ti i dalje kazem da ti ovo radis previse komplikovano. Ti zaravo pravis paralelni asp.net sistem sa svojom strukturom kontrola, a bez potrebe.

Umesto sto radis ove stvari, zasto ne kesiras podatke i ne kreiras strukturu kontrola u initu? I ucemu je problem da inicijalizujes strukturu u postbacku, sta mislis sta rade kompleksne asp.net kontrole inace? I onda lepo pustis asp.net da ti renderuje taj segment zajedno sa ostatkom stranice i pusis asp.net da ti vodi racuna o clientID i post paketima
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Automatski dodeljeni prefiksi kontrolama. 09.06.2010. u 11:17 · pre 199 meseci #11
Hajde proanaliziracu jos malo i pokusacu da odradim sa kesiranjem pa cu javiti sta sam uradio.

Hvala na savetima i odgovorima.
Potpis
Samo jeda i sekiracije!!!
Re: Automatski dodeljeni prefiksi kontrolama. 28.07.2010. u 11:37 · pre 197 meseci #14
Uzas. Jos jedan moguci point of failure. I sta ako imas user kontrolu sa oim tagom i stavis dve kontrole na formu? Ovo je jedna od onih stvari zbog kojih se ljudi cesu po glavi kad nesto prestane da radi.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Automatski dodeljeni prefiksi kontrolama. 28.07.2010. u 14:35 · pre 197 meseci #16
Pa upravo to mozes da sje*es sa sa gornjim atributom, pravis client ID koji je fiksiran na nivou cele stranice (samim timce i biti isti u dve instance iste user kontrole), samim tim mu umanjujes sanse da bude jedinstven, i odjednom vise ne rade javascript rutine bazirane na getElementByID. Ako pustis asp.net-u da imenuje kontrole u skladu sa hijerarhijom onda ce svaki element i biti jedinstven, sasmim tim je ClientIDMode veoma kontraproduktivan i problematican.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Automatski dodeljeni prefiksi kontrolama. 28.07.2010. u 14:57 · pre 197 meseci #17
Pa i praviš ga da bude fixan. Ne znam šta tu ima sporno...
Ako ćeš koristiti više instanci te kontrole na jednoj stranici, onda nećeš ni setovati id, nego ćeš setovati class, a onda pomoću selektora u jquery-u, šetajući se kroz hijerarhiju kontrola, selektovati instancu koja ti je potrebna.
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Re: Automatski dodeljeni prefiksi kontrolama. 28.07.2010. u 15:18 · pre 197 meseci #18
Aman, ne shvatas o cemu pricam, ne pricam ja o tebi i sta bi ti uradio, ni sta bi ja uradio, vec sta ce sampioni da rade i kakve ce ovo probleme da napravi. Ovo je atribut koji ne donosi nista neophodno a uvodi nove probleme nudeci lenjima liniju manjeg otpora.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Automatski dodeljeni prefiksi kontrolama. 28.07.2010. u 18:40 · pre 197 meseci #19
Pa ako neko stavi i "Throw New exception" u Page.load sajt neće raditi. To ne znači da Microsoft treba da izbaci exception nego programer treba da zna gde šta da stavi i kako će to funkcionisati. Par puta bi mi bilo 10x lakše da stavim fiksan ID nego da se petljam sa dinamički generisanim tako da je ovo po meni super rešenje. Naravno neću stavljati fiksni ID gde god mi padne na pamet, nego samo gde to stvarno treba.
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Automatski dodeljeni prefiksi kontrolama. 28.07.2010. u 21:51 · pre 197 meseci #20
Dva ne mogu da se porede. Server side exception ce puci ceo sajt, ova zezancija sa fiksiranim IDevima moze veoma lako da se provuce kroz sve faze kodiranja i testiranja narocito ako se dinamicki ucitavaju user kontrole u stranicu ili se kroz divove ucitava parcijalni HTML iz drugih izvora, i tako bug stigne u produkciju gde nece raditi a nece ni puci korisniku jer po defaultu browseri ne dizu popupove sa upozorenjima za JS greske. Samo zato sto je lakse ne znaci da je bolje, nazalost ta dva koncepta se u poslednje vreme poistovecuju.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme