Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako spriječiti autoscroll u listbox-u

[es] :: Javascript i AJAX :: Kako spriječiti autoscroll u listbox-u

[ Pregleda: 2725 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.adsl.net.t-com.hr.



Profil

icon Kako spriječiti autoscroll u listbox-u14.03.2008. u 12:05 - pre 195 meseci
Poštovanje svim forumašima.

Nakon dužeg vremena riješio sam problem koji sam imao sa unosom podataka u listbox i prebicivanjem podataka iz prvog listbox-a u drugi.

Ali sad imam drugi, malo veći problem. U listbox-u ima nekoliko tisuća podataka i kad se napravi neki event, u ovom slučaju doubleclick, koji prebacuje vrijednosti iz prvog listbox-a u drugi listbox, nakon svakog doublclick-a u prvom listbox-u scroll bar se vraća na početak, tj. na njegov vrh, što je stvarno nešto što ne želim da se događa jer korisnik onda mora svaki put da traži među par tisuća podataka gdje je stao.

Postoji li kakav način da se to izbjegne???
 
Odgovor na temu

japan

Član broj: 34328
Poruke: 480
*.bvcom.net.



+13 Profil

icon Re: Kako spriječiti autoscroll u listbox-u14.03.2008. u 12:24 - pre 195 meseci
posto nisi bas najbolje objasnio sta prethodno radis (sta prebacujes, odakle i gde) pretpostavljam da radis sa select elementima. ako sam u pravu, onda bi trebalo da zapamtis index elemtenta koji si prebacio, uvecas za jedan, i selektujes element sa tim, povecanim indeksom.

najbolje bi bilo da nam das kod, naravno, bez tih hiljada elementata, dovoljno je i nekoliko, samo za primer.

 
Odgovor na temu

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.adsl.net.t-com.hr.



Profil

icon Re: Kako spriječiti autoscroll u listbox-u14.03.2008. u 15:06 - pre 195 meseci
Kod glasi:

Code:

function copyToList1()
{
var AvailableLB = document.getElementById("available"); //=>lijevi listbox
var LinkedLB = document.getElementById("value_imeproizvoda"); //=>desni listbox

for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}


Imam 2 listboxa jedan do drugoga, size im je 30.

U lijevom listboxu su podaci koji se vuku iz tablice u bazi, kao što sam rekao ranije ima ih nekoliko tisuća, što znači da je potrebno skrolati dok se ne nađe odabrani podatak.

Kad se pronađe odabrani podatak, on se prenosi u drugi listbox tako što se na taj podatak (ili option u listbox-u) napravi dvostruki klik mišem. Tako možeš između njih par tisuća odabrati nekoliko desetaka podataka koji ti trebaju u desni listbox i na kraju se kad se klikne na Spremi podaci iz desnog listbox-a spremaju i povezuju s ostalim podacima u skripti.

Sad zamisli da se ti traženi podatci većinom nalaze na sredini listboxa ili još bolje pri njegovom kraju.

Čim napraviš dvostruki klik miša i podatak ti se prebaci u desni listbox, automatski se scrollbar na lijevom listboxu prebacuje na svoj početak, tj ide na vrh, pa je potrebno opet skrolati prema dolje ili vući mišem dok ne dođeš i ne pronađeš gdje si stao.

Sada zamisli da to trebaš raditi nekoliko desetaka puta dok ne odabereš sve što želiš da se iz lijevog listboxa prebaci u desni. I tako osam sati dnevno.

Čisti gubitak vremena, energije, a i živaca.

Znači potrebno mi je nešto što će spriječiti da se skrollbar pomiče prema gore i nakon što ja napravim dvostruki klik miša, tj da ostane na mjestu u listbox-u gdje sam stao.

 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Kako spriječiti autoscroll u listbox-u14.03.2008. u 19:12 - pre 195 meseci
samo pre for zapamti trenutno selektovani index u levom boxu sa:
Code:

var selected = AvailableLB.selectedIndex;

i posle for petlje selektuj taj index ponovo:
Code:

AvailableLB.selectedIndex = selected;



to bi trebalo da ti resi problem
 
Odgovor na temu

Fanta
Fanta Genije

Član broj: 119794
Poruke: 118
*.adsl.net.t-com.hr.



Profil

icon Re: Kako spriječiti autoscroll u listbox-u17.03.2008. u 08:40 - pre 195 meseci
Ne, ne radi, isto je kao i prije. Mislim da je problem u tome što se selektovani index nakon što se prebaci u desni listbox iz lijevog obriše se nakon prebacivanja kako bi korisnik bio siguran da je prebacio i kako ne bi opet radio dvostruki klik na istu vrijednost, tako da taj selektovani index ne postoji.

Kod gdje se briše je:

Code:
AvailableLB.options[i] = null;


Znači ono što bih ustvari trebao zapamtiti je sljedeći indeks nakon odabranog, zar ne? Kako to postići???
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.dynamic.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Kako spriječiti autoscroll u listbox-u20.03.2008. u 08:05 - pre 195 meseci
Citat:
Fanta:
Code:

...
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
.....



Ne proverava se koja je opcija izabrana u selectu na ovaj nacin. Postoji selectedIndex property, a preko njega mozes da dobijes trenutno selektovani option:
Code:

var selopt = AvailableLB.options[AvailableLB.selectedIndex];


Ako vec brises opciju koja je selektovana, onda mozes da npr selektujes onu pre nje:
Code:

var oldsel = AvailableLB.selectedIndex;
// ... ovde id kod koji se brise se brise ...
AvailableLB.selectedIndex = oldsel - 1;


Never trust an operating system you don't have sources for.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Kako spriječiti autoscroll u listbox-u20.03.2008. u 18:47 - pre 195 meseci
nema potrebe da selektuje onu opciju pre nje, jer se nakon brisanja neke opcije cela lista reindexira, tj ako je obrisana opcija sa indexom 4, opcija sa indexom 5 ce posle brisanja imati index 4 i tako dalje.
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.dynamic.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Kako spriječiti autoscroll u listbox-u21.03.2008. u 08:01 - pre 195 meseci
Ispred ili iza nebitno (pod uslovom da nisu u pitanju prva ili zadnja opcija), u svakom slucaju neku mora da selektuje.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Kako spriječiti autoscroll u listbox-u

[ Pregleda: 2725 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.